ybx_Gdn 1 год назад
Родитель
Сommit
4c12e5a3b7

+ 5 - 1
Assets/Content/Config/LanguagePackage_cn.csv

@@ -10024,4 +10024,8 @@ ic_buff_100011_Icon,buff/ic_buff_018
 DiffTaskConditionTxt,通關困難模式{0}  {1}/1
 DiffTaskTitleTxt,任務
 DiffGroupTaskConditionTxt,任務完成:{0}/{1}
-Notice_TeQuanKa,畢業特權卡以開放,購買特權後禮金使用額度將無上限。
+Notice_TeQuanKa,畢業特權卡以開放,購買特權後禮金使用額度將無上限。
+MapModeTxt_0,普通模式
+MapModeTxt_1,困難模式
+MapModeTxt_2,噩夢模式
+SelectMapModeTxt,模式切換

+ 400 - 0
Assets/Content/Prefabs/UI/UIBattle/ModeBtnNodeItem.prefab

@@ -0,0 +1,400 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4551030010309667767
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 180588024707189588}
+  - component: {fileID: 4501052932415447465}
+  - component: {fileID: 1423026295019145248}
+  - component: {fileID: 7014367680376320755}
+  m_Layer: 5
+  m_Name: ModeText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &180588024707189588
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4551030010309667767}
+  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: 8300380487160652379}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4501052932415447465
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4551030010309667767}
+  m_CullTransparentMesh: 1
+--- !u!114 &1423026295019145248
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4551030010309667767}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: "\u56F0\u96BE\u6A21\u5F0F"
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: ff9a33292f9ee2e4bb6b5beaa43eb505, type: 2}
+  m_sharedMaterial: {fileID: 21889736603187208, guid: ff9a33292f9ee2e4bb6b5beaa43eb505,
+    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: 1
+  m_colorMode: 2
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 0.95294124, b: 0.6784314, a: 1}
+    topRight: {r: 1, g: 0.95294124, b: 0.6784314, a: 1}
+    bottomLeft: {r: 1, g: 0.7490196, b: 0.3019608, a: 1}
+    bottomRight: {r: 1, g: 0.7490196, b: 0.3019608, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 32
+  m_fontSizeBase: 32
+  m_fontWeight: 400
+  m_enableAutoSizing: 1
+  m_fontSizeMin: 4
+  m_fontSizeMax: 32
+  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_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 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: 1
+  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!114 &7014367680376320755
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4551030010309667767}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UnityEngine.CanvasRenderer
+  - TMPro.TextMeshProUGUI
+  - UINode
+  values: 00000100
+  depObjs: []
+  activeType: 0
+--- !u!1 &7279144823623230128
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8300380487160652379}
+  - component: {fileID: 7477942308256335178}
+  - component: {fileID: 6938705368631409125}
+  - component: {fileID: 602299076996805581}
+  - component: {fileID: 2787357012318965981}
+  m_Layer: 5
+  m_Name: ModeBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &8300380487160652379
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7279144823623230128}
+  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: 180588024707189588}
+  m_Father: {fileID: 1791291132268628879}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7477942308256335178
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7279144823623230128}
+  m_CullTransparentMesh: 1
+--- !u!114 &6938705368631409125
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7279144823623230128}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 21300000, guid: 8456312845b862648aa5e81a9b4d9f20, type: 3}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &602299076996805581
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7279144823623230128}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 6938705368631409125}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &2787357012318965981
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7279144823623230128}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UnityEngine.CanvasRenderer
+  - UnityEngine.UI.Image
+  - UnityEngine.UI.Button
+  - UINode
+  values: 0000000100
+  depObjs: []
+  activeType: 0
+--- !u!1 &8845251498849250699
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1791291132268628879}
+  - component: {fileID: 2960554416989178399}
+  - component: {fileID: 8121899646181452059}
+  - component: {fileID: 8022775786177089174}
+  m_Layer: 5
+  m_Name: ModeBtnNodeItem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1791291132268628879
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8845251498849250699}
+  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: 8300380487160652379}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 0, y: -30}
+  m_SizeDelta: {x: 220, y: 60}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &2960554416989178399
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8845251498849250699}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UINode
+  - UIGridViewMark
+  - UnityEngine.UI.LayoutElement
+  values: 00000000
+  depObjs: []
+  activeType: 0
+--- !u!114 &8121899646181452059
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8845251498849250699}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 7747d94e72b614d48892f05308ad2220, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  GridItemName: ModeBtnNodeItem
+  OriName: 
+--- !u!114 &8022775786177089174
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 8845251498849250699}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: 220
+  m_PreferredHeight: 60
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1

+ 7 - 0
Assets/Content/Prefabs/UI/UIBattle/ModeBtnNodeItem.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f9e777edb0ba0b24db91efc1d0067df1
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 553 - 1
Assets/Content/Prefabs/UI/UIBattle/UIBattle.prefab

@@ -1222,6 +1222,150 @@ CanvasGroup:
   m_Interactable: 1
   m_BlocksRaycasts: 1
   m_IgnoreParentGroups: 0
+--- !u!1 &282938294965570415
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2091398355029973081}
+  - component: {fileID: 5329338282847595212}
+  - component: {fileID: 698777289203660865}
+  - component: {fileID: 7021048876051370795}
+  - component: {fileID: 1281364748864200230}
+  m_Layer: 5
+  m_Name: BgBtn
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2091398355029973081
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 282938294965570415}
+  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: 5358408220889896467}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: -565.02576, y: 687}
+  m_SizeDelta: {x: 2210.9482, y: 3130}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5329338282847595212
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 282938294965570415}
+  m_CullTransparentMesh: 1
+--- !u!114 &698777289203660865
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 282938294965570415}
+  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: 0}
+  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!114 &7021048876051370795
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 282938294965570415}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, 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: 698777289203660865}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!114 &1281364748864200230
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 282938294965570415}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UnityEngine.CanvasRenderer
+  - UnityEngine.UI.Image
+  - UnityEngine.UI.Button
+  - UINode
+  values: 0000000100
+  depObjs: []
+  activeType: 0
 --- !u!1 &290430483299839368
 GameObject:
   m_ObjectHideFlags: 0
@@ -11616,6 +11760,106 @@ MonoBehaviour:
   values: 00000000
   depObjs: []
   activeType: 0
+--- !u!1 &1426780734564407977
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3005804630013382804}
+  - component: {fileID: 4654636533741522348}
+  - component: {fileID: 4578602928687179983}
+  - component: {fileID: 5661902635226359067}
+  m_Layer: 0
+  m_Name: Content
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3005804630013382804
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1426780734564407977}
+  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: 2449233050482792040}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &4654636533741522348
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1426780734564407977}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UINode
+  - UnityEngine.UI.ContentSizeFitter
+  - UnityEngine.UI.VerticalLayoutGroup
+  values: 00000001
+  depObjs: []
+  activeType: 0
+--- !u!114 &4578602928687179983
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1426780734564407977}
+  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!114 &5661902635226359067
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1426780734564407977}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 4
+  m_Spacing: 20
+  m_ChildForceExpandWidth: 0
+  m_ChildForceExpandHeight: 0
+  m_ChildControlWidth: 0
+  m_ChildControlHeight: 0
+  m_ChildScaleWidth: 0
+  m_ChildScaleHeight: 0
+  m_ReverseArrangement: 0
 --- !u!1 &1426853948782407844
 GameObject:
   m_ObjectHideFlags: 0
@@ -15802,6 +16046,64 @@ CanvasGroup:
   m_Interactable: 1
   m_BlocksRaycasts: 1
   m_IgnoreParentGroups: 0
+--- !u!1 &2348052831952160385
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5358408220889896467}
+  - component: {fileID: 5330008682204407243}
+  m_Layer: 5
+  m_Name: MapLevelModes
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 0
+--- !u!224 &5358408220889896467
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2348052831952160385}
+  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: 2091398355029973081}
+  - {fileID: 5170962685642209424}
+  m_Father: {fileID: 3344933868594513017}
+  m_RootOrder: 11
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &5330008682204407243
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2348052831952160385}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UINode
+  values: 0000
+  depObjs: []
+  activeType: 0
 --- !u!1 &2382408689061984590
 GameObject:
   m_ObjectHideFlags: 0
@@ -16501,7 +16803,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!224 &3797717923722954867
 RectTransform:
   m_ObjectHideFlags: 0
@@ -24079,6 +24381,118 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 0, y: 160}
   m_Pivot: {x: 0, y: 0}
+--- !u!1 &4355235765743594251
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2449233050482792040}
+  - component: {fileID: 2439047470457236099}
+  - component: {fileID: 4089002453940867192}
+  - component: {fileID: 2886696995577856815}
+  - component: {fileID: 4833588129204750721}
+  m_Layer: 0
+  m_Name: Viewport
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2449233050482792040
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4355235765743594251}
+  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: 3005804630013382804}
+  m_Father: {fileID: 5170962685642209424}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &2439047470457236099
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4355235765743594251}
+  m_CullTransparentMesh: 1
+--- !u!114 &4089002453940867192
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4355235765743594251}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2886696995577856815
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4355235765743594251}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_ShowMaskGraphic: 0
+--- !u!114 &4833588129204750721
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4355235765743594251}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 0
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: 220
+  m_PreferredHeight: 350
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
 --- !u!1 &4357131338145789588
 GameObject:
   m_ObjectHideFlags: 0
@@ -32128,6 +32542,7 @@ RectTransform:
   - {fileID: 8176884359974707575}
   - {fileID: 2027977445991362123}
   - {fileID: 3797717923722954867}
+  - {fileID: 5358408220889896467}
   m_Father: {fileID: 4616978343254337758}
   m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -42369,6 +42784,143 @@ MonoBehaviour:
   m_FlexibleWidth: -1
   m_FlexibleHeight: -1
   m_LayoutPriority: 1
+--- !u!1 &9163262551034837463
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 5170962685642209424}
+  - component: {fileID: 4905493836691965299}
+  - component: {fileID: 4607024116250462995}
+  - component: {fileID: 371488819558061176}
+  - component: {fileID: 4359296684713316174}
+  m_Layer: 0
+  m_Name: ModeNode
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &5170962685642209424
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9163262551034837463}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 10}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 2449233050482792040}
+  m_Father: {fileID: 5358408220889896467}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0}
+  m_AnchorMax: {x: 0.5, y: 0}
+  m_AnchoredPosition: {x: -228, y: 120}
+  m_SizeDelta: {x: 220, y: 350}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4905493836691965299
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9163262551034837463}
+  m_CullTransparentMesh: 1
+--- !u!114 &4607024116250462995
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9163262551034837463}
+  m_Enabled: 0
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.392}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &371488819558061176
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9163262551034837463}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8759edc0b8b4b3d4aa8ffef2482e17ee, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  UIName: 
+  keys:
+  - UnityEngine.RectTransform
+  - UnityEngine.CanvasRenderer
+  - UnityEngine.UI.Image
+  - UINode
+  - UnityEngine.UI.LoopVerticalScrollRect
+  values: 0000000001
+  depObjs: []
+  activeType: 0
+--- !u!114 &4359296684713316174
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 9163262551034837463}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 513191da710c48b4aa1a77a62be4095a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  totalCount: 0
+  reverseDirection: 0
+  rubberScale: 1
+  threshold: 100
+  lowGrid: 0
+  m_Cell: {fileID: 1791291132268628879, guid: f9e777edb0ba0b24db91efc1d0067df1, type: 3}
+  m_Content: {fileID: 3005804630013382804}
+  m_Horizontal: 0
+  m_Vertical: 0
+  m_MovementType: 1
+  m_Elasticity: 0.1
+  m_Inertia: 1
+  m_DecelerationRate: 0.135
+  m_ScrollSensitivity: 1
+  m_Viewport: {fileID: 2449233050482792040}
+  m_HorizontalScrollbar: {fileID: 0}
+  m_VerticalScrollbar: {fileID: 0}
+  m_HorizontalScrollbarVisibility: 0
+  m_VerticalScrollbarVisibility: 0
+  m_HorizontalScrollbarSpacing: 0
+  m_VerticalScrollbarSpacing: 0
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
 --- !u!1 &9194142315186560214
 GameObject:
   m_ObjectHideFlags: 0

+ 27 - 0
Assets/Lua/UI/Common/ModeBtnNodeItemCtr.lua

@@ -0,0 +1,27 @@
+local ModeBtnNodeItemCtr = {}
+
+function ModeBtnNodeItemCtr:SetData(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params)
+    LogError("---------------"..itemlua:getClassName().."----------------"..Inspect(logicData))
+	self:InitUI(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params)
+    --self:SetItemsData(itemlua, logicData)
+	--self:SetBtns(itemlua, logicData)
+	
+end 
+
+function ModeBtnNodeItemCtr:InitUI(wnd, itemlua, logicData, enterType, onClickOwner, onClickCB, params)
+    
+    local modeTxt = I18N.T("MapModeTxt_"..logicData)
+    itemlua.modeText.text.text = modeTxt
+    wnd.uiBase:AddButtonUniqueEventListener(itemlua.modeBtn.button,onClickOwner,onClickCB,logicData)
+end
+
+
+function ModeBtnNodeItemCtr:SetItemsData(itemlua, logicData)
+    
+end
+
+function  ModeBtnNodeItemCtr:SetBtns(itemlua, logicData)
+    
+end
+
+return ModeBtnNodeItemCtr

+ 7 - 0
Assets/Lua/UI/Common/ModeBtnNodeItemCtr.lua.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e2383ee5219217c47b54bf94c3853d45
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 86 - 0
Assets/Lua/UI/GridViewItem/ModeBtnNodeItem_Generate.lua

@@ -0,0 +1,86 @@
+---@class ModeBtnNodeItem__Generate_modeText
+---@field public gameObject UnityEngine.GameObject
+---@field public text TMPro.TextMeshProUGUI
+
+---@class ModeBtnNodeItem__Generate_modeBtn
+---@field public gameObject UnityEngine.GameObject
+---@field public button UnityEngine.UI.Button
+
+---@class ModeBtnNodeItem__Generate
+---@field private gameObject UnityEngine.GameObject
+---@field private transform UnityEngine.Transform
+---@field private modeBtn ModeBtnNodeItem__Generate_modeBtn
+---@field private modeText ModeBtnNodeItem__Generate_modeText
+local ModeBtnNodeItemView = class("ModeBtnNodeItemView")
+
+function ModeBtnNodeItemView:ctor()
+end
+
+---@private
+function ModeBtnNodeItemView:SetActive(result)
+	self.gameObject:SetActive(result)
+end
+---@private
+function ModeBtnNodeItemView:InitGenerate(Root, data)
+	self.transform = Root
+	self.inited = true
+
+	local tmp
+
+	self:InitGenerate__1(Root,data)
+	self:InitGenerate__2(Root,data)
+	self:InitGenerate__3(Root,data)
+
+
+end
+
+---@private
+function ModeBtnNodeItemView:InitGenerate__1(Root, data)
+--[[
+	Root
+--]]
+end
+
+---@private
+function ModeBtnNodeItemView:InitGenerate__2(Root, data)
+--[[
+	ModeBtn
+--]]
+	local tmp = Root:Find("ModeBtn").gameObject
+	if tolua.getpeer(tmp) == nil then
+		tolua.setpeer(tmp, {})
+	end
+	self.modeBtn = tmp
+
+	tmp.button = tmp:GetComponent(Enum.TypeInfo.Button)
+end
+
+---@private
+function ModeBtnNodeItemView:InitGenerate__3(Root, data)
+--[[
+	ModeBtn/ModeText
+--]]
+	local tmp = Root:Find("ModeBtn/ModeText").gameObject
+	if tolua.getpeer(tmp) == nil then
+		tolua.setpeer(tmp, {})
+	end
+	self.modeText = tmp
+
+	tmp.text = tmp:GetComponent(Enum.TypeInfo.TextMeshProUGUI)
+end
+
+---@private
+function ModeBtnNodeItemView:GenerateDestroy()
+	if tolua.getpeer(self.modeBtn) ~= nil then
+		tolua.setpeer(self.modeBtn, nil)
+	end
+	self.modeBtn = nil
+	if tolua.getpeer(self.modeText) ~= nil then
+		tolua.setpeer(self.modeText, nil)
+	end
+	self.modeText = nil
+	self.transform = nil
+	self.gameObject = nil
+	self.inited = false
+end
+return ModeBtnNodeItemView

+ 7 - 0
Assets/Lua/UI/GridViewItem/ModeBtnNodeItem_Generate.lua.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c3df558100d48ba448da2258af749eee
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 66 - 26
Assets/Lua/UI/UIBattle/UIBattleView.lua

@@ -412,46 +412,86 @@ function UIBattleView:AddUIEventListener()
 	self.uiBase:AddButtonUniqueEventListener(self.btnRedEnvelope.button, self, self.OnNormalREClick)
 	self.uiBase:AddButtonUniqueEventListener(self.windowEnvelope.button, self, self.OnHideWindowsEnvelope)
 	self.uiBase:AddButtonUniqueEventListener(self.difficultBtn.button, self, self.OnClickDifficultBtn)
+	self.uiBase:AddButtonUniqueEventListener(self.bgBtn.button,self,self.CloseMapModeSelectPanel)
 end
 
 function  UIBattleView:OnClickDifficultBtn()
 	
-	if bBossStage then
-		ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("Fighting1")
-		return;
-	end
-
-	local mapMode = ManagerContainer.LuaBattleMgr:GetBattleMode() == Enum.MapModeType.Difficulty and Enum.MapModeType.Simple or Enum.MapModeType.Difficulty
-	ManagerContainer.LuaBattleMgr:SendChangeMapLevelTypeReq(mapMode)
-	--- 以下为本地模拟
-	-- local targetLV = 1
-	-- local targetMap = 1
-	-- if mapMode == Enum.MapModeType.Difficulty then
-	-- 	targetLV = 5
-	--  	targetMap = 2
-	-- else --==Enum.MapModeType.Simple
-	-- 	targetMap,targetLV = ManagerContainer.LuaBattleMgr:GetLastMapIdAndLvId()
+	-- if bBossStage then
+	-- 	ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("Fighting1")
+	-- 	return;
 	-- end
-
-	 --ManagerContainer.LuaBattleMgr:SetBattleMode(mapMode)
-	 --local data  = ManagerContainer.LuaBattleMgr:GetSimulationBattleData(1,2)
-	 --ManagerContainer.LuaBattleMgr:OnBattleDataChange(data,true)
+	
+	-- local mapMode = ManagerContainer.LuaBattleMgr:GetBattleMode() == Enum.MapModeType.Difficulty and Enum.MapModeType.Simple or Enum.MapModeType.Difficulty
+	-- ManagerContainer.LuaBattleMgr:SendChangeMapLevelTypeReq(mapMode)
+	
+		self.mapLevelModes:SetActive(true)
+		self:RefMapModeBtn()
 end
 
 function  UIBattleView:OnMapModeChange(mode)
 	--self.difficultBtn.DifTxt
 	
-	local Btntxt = ""
-	if mode == 0 then
-		Btntxt = I18N.T("DifficultMode")
-	else
-		Btntxt = I18N.T("SimpleMode")		
-	end
-	LogError("--------------------"..Btntxt)
+	local Btntxt = I18N.T("SelectMapModeTxt")
+	-- if mode == 0 then
+	-- 	Btntxt = I18N.T("DifficultMode")
+	-- else
+	-- 	Btntxt = I18N.T("SimpleMode")		
+	-- end
+	--LogError("--------------------"..Btntxt)
+
 	self.difficultBtn.DifTxt.text.text = Btntxt
 	
 end
 
+
+function UIBattleView:RefMapModeBtn()
+	local curMode = ManagerContainer.LuaBattleMgr:GetBattleMode()
+
+	local AllMode = {0,1,2}
+
+	local needShowModeBtn = {}
+
+
+	for _, v in ipairs(AllMode) do
+		if v ~= curMode then
+			table.insert(needShowModeBtn,v)
+		end
+	end
+
+
+	self.modeNode.loopVerticalScrollRect:ClearCells()
+	CommonUtil.LoopGridViewEleCreateNew(self, 
+	self.modeNode.loopVerticalScrollRect,
+	self.content.verticalLayoutGroup,
+	needShowModeBtn, 
+	 0, 
+	 self, 
+	 self.UpdateModeNode, 
+	 nil, nil, 0);
+end
+
+
+function UIBattleView:UpdateModeNode(_itemLua, _idx,_data)
+	if not _itemLua or not _data then return end
+	CommonUtil.UpdateItemPrefab(self, _itemLua, _data, nil,self,self.OnClickMapMode)
+end
+
+
+function UIBattleView:OnClickMapMode(btn,data)
+	--LogError("点击  data = " ..Inspect(data))
+	self:CloseMapModeSelectPanel()
+	if bBossStage then
+		ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("Fighting1")
+		return;
+	end	
+	ManagerContainer.LuaBattleMgr:SendChangeMapLevelTypeReq(data[0])
+end
+
+function UIBattleView:CloseMapModeSelectPanel()
+	self.mapLevelModes:SetActive(false)
+end
+
 function UIBattleView:OnHide()
 	self.newFunc = nil
 	self:DisposeNewLevelIncrease()

+ 114 - 24
Assets/Lua/UI/UIBattle/UIBattleView_Generate.lua

@@ -100,6 +100,18 @@
 ---@field public dscTxt UIBattle__Generate_newOpen_dscTxt
 ---@field public item UIBattle__Generate_newOpen_item
 
+---@class UIBattle__Generate_content
+---@field public gameObject UnityEngine.GameObject
+---@field public verticalLayoutGroup UnityEngine.UI.VerticalLayoutGroup
+
+---@class UIBattle__Generate_modeNode
+---@field public gameObject UnityEngine.GameObject
+---@field public loopVerticalScrollRect UnityEngine.UI.LoopVerticalScrollRect
+
+---@class UIBattle__Generate_bgBtn
+---@field public gameObject UnityEngine.GameObject
+---@field public button UnityEngine.UI.Button
+
 ---@class UIBattle__Generate_difficultBtn_DifTxt
 ---@field public gameObject UnityEngine.GameObject
 ---@field public text TMPro.TextMeshProUGUI
@@ -492,6 +504,10 @@
 ---@field private btnRedEnvelope UIBattle__Generate_btnRedEnvelope
 ---@field private windowEnvelope UIBattle__Generate_windowEnvelope
 ---@field private difficultBtn UIBattle__Generate_difficultBtn
+---@field private mapLevelModes UnityEngine.GameObject
+---@field private bgBtn UIBattle__Generate_bgBtn
+---@field private modeNode UIBattle__Generate_modeNode
+---@field private content UIBattle__Generate_content
 ---@field private centerNode UnityEngine.GameObject
 ---@field private newOpen UIBattle__Generate_newOpen
 ---@field private particle UIBattle__Generate_particle
@@ -642,6 +658,10 @@ function UIBattleView:InitGenerate(Root, data)
 	self:InitGenerate__115(Root,data)
 	self:InitGenerate__116(Root,data)
 	self:InitGenerate__117(Root,data)
+	self:InitGenerate__118(Root,data)
+	self:InitGenerate__119(Root,data)
+	self:InitGenerate__120(Root,data)
+	self:InitGenerate__121(Root,data)
 
 
 end
@@ -1921,6 +1941,60 @@ end
 
 ---@private
 function UIBattleView:InitGenerate__93(Root, data)
+--[[
+	BottomView/BattleRootNew/MapLevelModes
+--]]
+	local tmp = Root:Find("BottomView/BattleRootNew/MapLevelModes").gameObject
+	if tolua.getpeer(tmp) == nil then
+		tolua.setpeer(tmp, {})
+	end
+	self.mapLevelModes = tmp
+end
+
+---@private
+function UIBattleView:InitGenerate__94(Root, data)
+--[[
+	BottomView/BattleRootNew/MapLevelModes/BgBtn
+--]]
+	local tmp = Root:Find("BottomView/BattleRootNew/MapLevelModes/BgBtn").gameObject
+	if tolua.getpeer(tmp) == nil then
+		tolua.setpeer(tmp, {})
+	end
+	self.bgBtn = tmp
+
+	tmp.button = tmp:GetComponent(Enum.TypeInfo.Button)
+end
+
+---@private
+function UIBattleView:InitGenerate__95(Root, data)
+--[[
+	BottomView/BattleRootNew/MapLevelModes/ModeNode
+--]]
+	local tmp = Root:Find("BottomView/BattleRootNew/MapLevelModes/ModeNode").gameObject
+	if tolua.getpeer(tmp) == nil then
+		tolua.setpeer(tmp, {})
+	end
+	self.modeNode = tmp
+
+	tmp.loopVerticalScrollRect = tmp:GetComponent(Enum.TypeInfo.LoopVerticalScrollRect)
+end
+
+---@private
+function UIBattleView:InitGenerate__96(Root, data)
+--[[
+	BottomView/BattleRootNew/MapLevelModes/ModeNode/Viewport/Content
+--]]
+	local tmp = Root:Find("BottomView/BattleRootNew/MapLevelModes/ModeNode/Viewport/Content").gameObject
+	if tolua.getpeer(tmp) == nil then
+		tolua.setpeer(tmp, {})
+	end
+	self.content = tmp
+
+	tmp.verticalLayoutGroup = tmp:GetComponent(Enum.TypeInfo.VerticalLayoutGroup)
+end
+
+---@private
+function UIBattleView:InitGenerate__97(Root, data)
 --[[
 	CenterView
 --]]
@@ -1932,7 +2006,7 @@ function UIBattleView:InitGenerate__93(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__94(Root, data)
+function UIBattleView:InitGenerate__98(Root, data)
 --[[
 	CenterView/NewOpen
 --]]
@@ -1944,7 +2018,7 @@ function UIBattleView:InitGenerate__94(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__95(Root, data)
+function UIBattleView:InitGenerate__99(Root, data)
 --[[
 	CenterView/NewOpen/Alpha
 --]]
@@ -1958,7 +2032,7 @@ function UIBattleView:InitGenerate__95(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__96(Root, data)
+function UIBattleView:InitGenerate__100(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/New/Icon/Image
 --]]
@@ -1972,7 +2046,7 @@ function UIBattleView:InitGenerate__96(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__97(Root, data)
+function UIBattleView:InitGenerate__101(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/New/Icon/ImageLt
 --]]
@@ -1986,7 +2060,7 @@ function UIBattleView:InitGenerate__97(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__98(Root, data)
+function UIBattleView:InitGenerate__102(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/New/Move/NameTxt
 --]]
@@ -2000,7 +2074,7 @@ function UIBattleView:InitGenerate__98(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__99(Root, data)
+function UIBattleView:InitGenerate__103(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/New/Move/DscTxt
 --]]
@@ -2014,7 +2088,7 @@ function UIBattleView:InitGenerate__99(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__100(Root, data)
+function UIBattleView:InitGenerate__104(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/New/particle
 --]]
@@ -2028,7 +2102,7 @@ function UIBattleView:InitGenerate__100(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__101(Root, data)
+function UIBattleView:InitGenerate__105(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/Next/Item
 --]]
@@ -2040,7 +2114,7 @@ function UIBattleView:InitGenerate__101(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__102(Root, data)
+function UIBattleView:InitGenerate__106(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/Next/Item/Image
 --]]
@@ -2054,7 +2128,7 @@ function UIBattleView:InitGenerate__102(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__103(Root, data)
+function UIBattleView:InitGenerate__107(Root, data)
 --[[
 	CenterView/NewOpen/Window/BG/Next/Item/ItemTxt
 --]]
@@ -2068,7 +2142,7 @@ function UIBattleView:InitGenerate__103(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__104(Root, data)
+function UIBattleView:InitGenerate__108(Root, data)
 --[[
 	BossWarning
 --]]
@@ -2083,7 +2157,7 @@ function UIBattleView:InitGenerate__104(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__105(Root, data)
+function UIBattleView:InitGenerate__109(Root, data)
 --[[
 	RageBoxNew
 --]]
@@ -2095,7 +2169,7 @@ function UIBattleView:InitGenerate__105(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__106(Root, data)
+function UIBattleView:InitGenerate__110(Root, data)
 --[[
 	RageBoxNew/Bg
 --]]
@@ -2110,7 +2184,7 @@ function UIBattleView:InitGenerate__106(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__107(Root, data)
+function UIBattleView:InitGenerate__111(Root, data)
 --[[
 	RageBoxNew/Bg/Window/Text/Number1
 --]]
@@ -2126,7 +2200,7 @@ function UIBattleView:InitGenerate__107(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__108(Root, data)
+function UIBattleView:InitGenerate__112(Root, data)
 --[[
 	RageBoxNew/Bg/Window/Text/Number2
 --]]
@@ -2142,7 +2216,7 @@ function UIBattleView:InitGenerate__108(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__109(Root, data)
+function UIBattleView:InitGenerate__113(Root, data)
 --[[
 	BattleFailed
 --]]
@@ -2154,7 +2228,7 @@ function UIBattleView:InitGenerate__109(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__110(Root, data)
+function UIBattleView:InitGenerate__114(Root, data)
 --[[
 	funcbg
 --]]
@@ -2168,7 +2242,7 @@ function UIBattleView:InitGenerate__110(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__111(Root, data)
+function UIBattleView:InitGenerate__115(Root, data)
 --[[
 	funcbg/HeadOrder
 --]]
@@ -2182,7 +2256,7 @@ function UIBattleView:InitGenerate__111(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__112(Root, data)
+function UIBattleView:InitGenerate__116(Root, data)
 --[[
 	funcbg/HeadOrder/BtnPrivateChat
 --]]
@@ -2196,7 +2270,7 @@ function UIBattleView:InitGenerate__112(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__113(Root, data)
+function UIBattleView:InitGenerate__117(Root, data)
 --[[
 	funcbg/HeadOrder/BtnInfor
 --]]
@@ -2210,7 +2284,7 @@ function UIBattleView:InitGenerate__113(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__114(Root, data)
+function UIBattleView:InitGenerate__118(Root, data)
 --[[
 	funcbg/HeadOrder/BtnAddFriend
 --]]
@@ -2224,7 +2298,7 @@ function UIBattleView:InitGenerate__114(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__115(Root, data)
+function UIBattleView:InitGenerate__119(Root, data)
 --[[
 	funcbg/HeadOrder/BtnAddFriend/Text
 --]]
@@ -2238,7 +2312,7 @@ function UIBattleView:InitGenerate__115(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__116(Root, data)
+function UIBattleView:InitGenerate__120(Root, data)
 --[[
 	funcbg/HeadOrder/BtnBlock
 --]]
@@ -2252,7 +2326,7 @@ function UIBattleView:InitGenerate__116(Root, data)
 end
 
 ---@private
-function UIBattleView:InitGenerate__117(Root, data)
+function UIBattleView:InitGenerate__121(Root, data)
 --[[
 	funcbg/HeadOrder/BtnBlock/Text
 --]]
@@ -2646,6 +2720,22 @@ function UIBattleView:GenerateDestroy()
 		tolua.setpeer(self.difficultBtn, nil)
 	end
 	self.difficultBtn = nil
+	if tolua.getpeer(self.mapLevelModes) ~= nil then
+		tolua.setpeer(self.mapLevelModes, nil)
+	end
+	self.mapLevelModes = nil
+	if tolua.getpeer(self.bgBtn) ~= nil then
+		tolua.setpeer(self.bgBtn, nil)
+	end
+	self.bgBtn = nil
+	if tolua.getpeer(self.modeNode) ~= nil then
+		tolua.setpeer(self.modeNode, nil)
+	end
+	self.modeNode = nil
+	if tolua.getpeer(self.content) ~= nil then
+		tolua.setpeer(self.content, nil)
+	end
+	self.content = nil
 	if tolua.getpeer(self.centerNode) ~= nil then
 		tolua.setpeer(self.centerNode, nil)
 	end

+ 19 - 8
Assets/Lua/UI/UITask/UIDiffTaskCtr.lua

@@ -2,24 +2,34 @@ local UIDiffTaskCtr = class("UIDiffTaskCtr", require("UICtrBase"))
 
 function UIDiffTaskCtr:Init(view)
 	self.view = view
-	self.TaskType = 1
-	self.TaskListTag = Enum.TaskTag.Hard
-	self.GroupTasTag = Enum.TaskTag.HardGroup
-	self.TaskDataMgr = ManagerContainer.DataMgr.HardMissionDataMgr
+	self:SetTypeData(1)
+	
 end
 
 function UIDiffTaskCtr:SetData(data)
 	self.asyncIdx = 0
 	if data == nil then return end
 	self.data = data
-	self.TaskType = self.data[1]
+	self:SetTypeData(self.data[1])
 
-	if self.TaskType ~= 1 then
+end
+
+function UIDiffTaskCtr:SetTypeData(type)
+	if type == nil or self.TaskType == type then
+		return
+	end
+
+	self.TaskType = type
+
+	if (type == 1) then
+		self.TaskListTag = Enum.TaskTag.Hard
+		self.GroupTasTag = Enum.TaskTag.HardGroup
+		self.TaskDataMgr = ManagerContainer.DataMgr.HardMissionDataMgr
+	else
 		self.TaskListTag = Enum.TaskTag.Hard_S
 		self.GroupTasTag = Enum.TaskTag.HardGroup_S
 		self.TaskDataMgr = ManagerContainer.DataMgr.HardMission_S_DataMgr
 	end
-
 end
 
 function UIDiffTaskCtr:GetAsyncIdx()
@@ -45,7 +55,8 @@ function UIDiffTaskCtr:GetGroupTaskData()
 	return ManagerContainer.DataMgr.TaskDataNew:GetTasksDataByType(self.GroupTasTag)
 end
 
-function UIDiffTaskCtr:GetShowTaskData()
+function UIDiffTaskCtr:GetShowTaskData(type)
+	self:SetTypeData(type)
 	local tasklist = self:GetAllTaskData()
 	local groupTask = self:GetGroupTaskData()