From f14b8d6ac696bcc8c12d93b576810bf6d4a7f3ed Mon Sep 17 00:00:00 2001 From: YiHan0621 <2857295085@qq.com> Date: Mon, 13 Oct 2025 01:41:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=8A=BD=E5=8D=A1=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=BB=A5=E5=8F=8A=E6=A0=B9=E6=8D=AE=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=84=8F=E8=A7=81=E5=92=8C=E5=8A=9F=E8=83=BD=E7=BC=BA=E5=A4=B1?= =?UTF-8?q?=E5=81=9A=E5=87=BA=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/TcgEngine/Scenes/Menu/Menu.unity | 501 +++++++++++------- Assets/TcgEngine/Scenes/Menu/OpenPack.unity | 221 +++++++- Assets/TcgEngine/Scripts/Data/AbilityData.cs | 2 +- Assets/TcgEngine/Scripts/Data/DataLoader.cs | 50 +- .../Scripts/GameClient/HandPackArea.cs | 15 +- .../TcgEngine/Scripts/GameClient/PackCard.cs | 9 +- .../TcgEngine/Scripts/Menu/CollectionPanel.cs | 10 +- Assets/TcgEngine/Scripts/Menu/OpenPackMenu.cs | 9 +- Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs | 90 ++++ .../Scripts/Menu/PackBuyPanel.cs.meta | 11 + Assets/TcgEngine/Scripts/Menu/PackPanel.cs | 71 ++- .../TcgEngine/Scripts/Menu/PackZoomPanel.cs | 13 - Assets/TcgEngine/Scripts/UI/HoverTargetUI.cs | 2 +- Assets/TcgEngine/Scripts/UI/PresetDeck.cs | 2 +- 14 files changed, 702 insertions(+), 304 deletions(-) create mode 100644 Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs create mode 100644 Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs.meta diff --git a/Assets/TcgEngine/Scenes/Menu/Menu.unity b/Assets/TcgEngine/Scenes/Menu/Menu.unity index fb4d421..c1e5f01 100644 --- a/Assets/TcgEngine/Scenes/Menu/Menu.unity +++ b/Assets/TcgEngine/Scenes/Menu/Menu.unity @@ -4896,7 +4896,19 @@ MonoBehaviour: m_TargetGraphic: {fileID: 212335885} m_OnClick: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 947751582} + m_TargetAssemblyTypeName: TcgEngine.UI.PresetDeck, Assembly-CSharp + m_MethodName: OffPresetLineupPanle + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &212335885 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7369,6 +7381,86 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 332490979} m_CullTransparentMesh: 0 +--- !u!1 &337567919 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337567920} + - component: {fileID: 337567922} + - component: {fileID: 337567921} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &337567920 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337567919} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.00008, y: 1.00008, z: 1.00008} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004893070} + m_RootOrder: 0 + 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: 454.41492, y: 0} + m_SizeDelta: {x: 160, y: 60.049988} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &337567921 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337567919} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 1, b: 0.092921734, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u5F53\u524D\u9009\u62E9" +--- !u!222 &337567922 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337567919} + m_CullTransparentMesh: 1 --- !u!1 &355604576 GameObject: m_ObjectHideFlags: 0 @@ -13921,7 +14013,10 @@ MonoBehaviour: type: 3} coin: {fileID: 89465180} crystal: {fileID: 1114931796} + standard_toggle: {fileID: 853787614} + elite_toggle: {fileID: 1004893074} preparePack: {fileID: 0} + packBuyPanel: {fileID: 764244352} --- !u!225 &706214463 CanvasGroup: m_ObjectHideFlags: 0 @@ -13930,7 +14025,7 @@ CanvasGroup: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 706214460} m_Enabled: 1 - m_Alpha: 0 + m_Alpha: 1 m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 @@ -14931,6 +15026,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 764244351} + - component: {fileID: 764244353} + - component: {fileID: 764244352} m_Layer: 5 m_Name: SidebarBottom m_TagString: Untagged @@ -14950,8 +15047,8 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1355495569} - {fileID: 972743012} + - {fileID: 1355495569} m_Father: {fileID: 706214461} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -14960,6 +15057,34 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 118.51001} m_SizeDelta: {x: 1920, y: 237.04} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &764244352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764244350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff8ebde9cba8f9548a236d8789ee537e, type: 3} + m_Name: + m_EditorClassIdentifier: + display_speed: 4 + buy_five_btn: {fileID: 972743013} + buy_ten_btn: {fileID: 1355495570} + pack: {fileID: 0} +--- !u!225 &764244353 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764244350} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &774281753 GameObject: m_ObjectHideFlags: 0 @@ -16869,7 +16994,7 @@ GameObject: - component: {fileID: 853787610} - component: {fileID: 853787613} - component: {fileID: 853787612} - - component: {fileID: 853787611} + - component: {fileID: 853787614} m_Layer: 5 m_Name: BasePack_Button m_TagString: Untagged @@ -16893,55 +17018,11 @@ RectTransform: m_Father: {fileID: 1956856443} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0.4149933, y: -76} + m_SizeDelta: {x: 360, y: 152} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &853787611 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 853787609} - 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: 853787612} - m_OnClick: - m_PersistentCalls: - m_Calls: [] --- !u!114 &853787612 MonoBehaviour: m_ObjectHideFlags: 0 @@ -16980,6 +17061,54 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 853787609} m_CullTransparentMesh: 1 +--- !u!114 &853787614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 853787609} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, 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: 853787612} + toggleTransition: 1 + graphic: {fileID: 1349697548} + m_Group: {fileID: 1956856445} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 --- !u!1 &853799056 GameObject: m_ObjectHideFlags: 0 @@ -19243,7 +19372,7 @@ PrefabInstance: - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} @@ -19253,17 +19382,17 @@ PrefabInstance: - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_SizeDelta.x - value: 225 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_SizeDelta.y - value: 380 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} @@ -19303,12 +19432,12 @@ PrefabInstance: - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchoredPosition.x - value: 481.9176 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchoredPosition.y - value: -190 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} @@ -19384,7 +19513,7 @@ RectTransform: - {fileID: 1633028211} - {fileID: 1676261247} m_Father: {fileID: 764244351} - m_RootOrder: 1 + 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} @@ -19434,7 +19563,19 @@ MonoBehaviour: m_TargetGraphic: {fileID: 972743014} m_OnClick: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 706214462} + m_TargetAssemblyTypeName: TcgEngine.UI.PackPanel, Assembly-CSharp + m_MethodName: OnClickOpenPacks + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &972743014 MonoBehaviour: m_ObjectHideFlags: 0 @@ -20171,7 +20312,7 @@ GameObject: - component: {fileID: 1004893070} - component: {fileID: 1004893073} - component: {fileID: 1004893072} - - component: {fileID: 1004893071} + - component: {fileID: 1004893074} m_Layer: 5 m_Name: ExpPack01_Button m_TagString: Untagged @@ -20191,59 +20332,15 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1129245874} + - {fileID: 337567920} m_Father: {fileID: 1956856443} m_RootOrder: 1 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_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0.4149933, y: -242.74} + m_SizeDelta: {x: 360, y: 152} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1004893071 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1004893069} - 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: 1004893072} - m_OnClick: - m_PersistentCalls: - m_Calls: [] --- !u!114 &1004893072 MonoBehaviour: m_ObjectHideFlags: 0 @@ -20282,6 +20379,54 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1004893069} m_CullTransparentMesh: 1 +--- !u!114 &1004893074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1004893069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, 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: 1004893072} + toggleTransition: 1 + graphic: {fileID: 337567921} + m_Group: {fileID: 1956856445} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 0 --- !u!1001 &1005710591 PrefabInstance: m_ObjectHideFlags: 0 @@ -22924,7 +23069,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!114 &1106185534 MonoBehaviour: m_ObjectHideFlags: 0 @@ -23012,7 +23157,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: -49.97998, y: -55} + m_AnchoredPosition: {x: 1693, y: 0.0000038147} m_SizeDelta: {x: -681.17, y: 1022.07} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &1106584899 stripped @@ -23267,86 +23412,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: avatar_path: ---- !u!1 &1129245873 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1129245874} - - component: {fileID: 1129245876} - - component: {fileID: 1129245875} - m_Layer: 5 - m_Name: Text (Legacy)_1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1129245874 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1129245873} - 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: 1004893070} - m_RootOrder: 0 - 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: 441, y: 0} - m_SizeDelta: {x: 160, y: 60.05} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1129245875 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1129245873} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0, g: 1, b: 0.092921734, 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_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 28 - m_FontStyle: 1 - m_BestFit: 0 - m_MinSize: 2 - m_MaxSize: 40 - m_Alignment: 3 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: "\u5F53\u524D\u9009\u62E9" ---- !u!222 &1129245876 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1129245873} - m_CullTransparentMesh: 1 --- !u!1 &1146806064 GameObject: m_ObjectHideFlags: 0 @@ -27941,7 +28006,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1349697546} - 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 @@ -27951,8 +28016,8 @@ RectTransform: 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: 441, y: 0} - m_SizeDelta: {x: 160, y: 60.05} + m_AnchoredPosition: {x: 454.41498, y: 0} + m_SizeDelta: {x: 160, y: 60.049988} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1349697548 MonoBehaviour: @@ -28032,7 +28097,7 @@ RectTransform: - {fileID: 88014992} - {fileID: 1757309879} m_Father: {fileID: 764244351} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -28082,7 +28147,19 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1355495571} m_OnClick: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 706214462} + m_TargetAssemblyTypeName: TcgEngine.UI.PackPanel, Assembly-CSharp + m_MethodName: OnClickOpenPacks + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &1355495571 MonoBehaviour: m_ObjectHideFlags: 0 @@ -34727,7 +34804,7 @@ PrefabInstance: - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} @@ -34737,27 +34814,27 @@ PrefabInstance: - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_SizeDelta.x - value: 225 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_SizeDelta.y - value: 380 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchoredPosition.x - value: 756.9176 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3846283343658581240, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} propertyPath: m_AnchoredPosition.y - value: -190 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3898561444240040173, guid: b7b11226992a4a04ab430d137b91cce7, type: 3} @@ -39071,6 +39148,7 @@ GameObject: m_Component: - component: {fileID: 1956856443} - component: {fileID: 1956856444} + - component: {fileID: 1956856445} m_Layer: 5 m_Name: ButtonGroup m_TagString: Untagged @@ -39108,7 +39186,7 @@ MonoBehaviour: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1956856442} - m_Enabled: 1 + m_Enabled: 0 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} m_Name: @@ -39125,6 +39203,19 @@ MonoBehaviour: m_Spacing: {x: 0, y: 14.74} m_Constraint: 0 m_ConstraintCount: 2 +--- !u!114 &1956856445 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1956856442} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fafe2cfe61f6974895a912c3755e8f1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_AllowSwitchOff: 0 --- !u!1 &1958182119 GameObject: m_ObjectHideFlags: 0 @@ -46537,7 +46628,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0.00089543255} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 4000} m_Pivot: {x: 0, y: 1} --- !u!1 &396921782805722625 diff --git a/Assets/TcgEngine/Scenes/Menu/OpenPack.unity b/Assets/TcgEngine/Scenes/Menu/OpenPack.unity index 88ba84e..764cea5 100644 --- a/Assets/TcgEngine/Scenes/Menu/OpenPack.unity +++ b/Assets/TcgEngine/Scenes/Menu/OpenPack.unity @@ -149,7 +149,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 61203} - 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: 1 @@ -158,12 +158,12 @@ RectTransform: - {fileID: 353545631} - {fileID: 121980003} - {fileID: 2119087125} - m_Father: {fileID: 3582334443270902937} - m_RootOrder: 1 + m_Father: {fileID: 385062619} + m_RootOrder: 0 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: -281.1, y: 135.20001} + m_AnchoredPosition: {x: -289.35004, y: 135.19502} m_SizeDelta: {x: 488, y: 176} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &61205 @@ -212,7 +212,7 @@ MonoBehaviour: m_Calls: - m_Target: {fileID: 679643788} m_TargetAssemblyTypeName: TcgEngine.Client.OpenPackMenu, Assembly-CSharp - m_MethodName: OpenPack + m_MethodName: OnClickBuy m_Mode: 5 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -260,6 +260,51 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 61203} m_CullTransparentMesh: 1 +--- !u!1 &10947087 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 10947089} + - component: {fileID: 10947088} + m_Layer: 0 + m_Name: ResourceDownloader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &10947088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10947087} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: da41884ccee8c42b594e97ccc928ddf2, type: 3} + m_Name: + m_EditorClassIdentifier: + config: {fileID: 0} +--- !u!4 &10947089 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 10947087} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &27200930 GameObject: m_ObjectHideFlags: 0 @@ -485,7 +530,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 153241173} - 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: 1 @@ -494,12 +539,12 @@ RectTransform: - {fileID: 27200931} - {fileID: 262082718} - {fileID: 1531772640} - m_Father: {fileID: 3582334443270902937} - m_RootOrder: 2 + m_Father: {fileID: 385062619} + 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: 297.60007, y: 135.20001} + m_AnchoredPosition: {x: 289.35004, y: 135.19505} m_SizeDelta: {x: 488, y: 176} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &153241175 @@ -548,8 +593,8 @@ MonoBehaviour: m_Calls: - m_Target: {fileID: 679643788} m_TargetAssemblyTypeName: TcgEngine.Client.OpenPackMenu, Assembly-CSharp - m_MethodName: OpenPack - m_Mode: 5 + m_MethodName: AutoRevealAndCollect + m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine @@ -810,6 +855,74 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 353545630} m_CullTransparentMesh: 1 +--- !u!1 &385062618 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 385062619} + - component: {fileID: 385062621} + - component: {fileID: 385062620} + m_Layer: 0 + m_Name: PackBuyPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &385062619 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 385062618} + 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: 61204} + - {fileID: 153241174} + m_Father: {fileID: 3582334443270902937} + m_RootOrder: 2 + 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: 8.25, y: -411.96} + m_SizeDelta: {x: 1209.92, y: 256.07} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &385062620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 385062618} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff8ebde9cba8f9548a236d8789ee537e, type: 3} + m_Name: + m_EditorClassIdentifier: + display_speed: 4 + buy_five_btn: {fileID: 61205} + buy_ten_btn: {fileID: 153241175} + pack: {fileID: 11400000, guid: 2db0d9f08bdfa57419101c08b8598c1a, type: 2} +--- !u!225 &385062621 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 385062618} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &516177001 GameObject: m_ObjectHideFlags: 0 @@ -1193,6 +1306,7 @@ MonoBehaviour: m_EditorClassIdentifier: card_prefab: {fileID: 5798522617356319161, guid: d1af7599408081945b19ed7af55ad559, type: 3} + packBuyPanel: {fileID: 385062620} --- !u!114 &679643789 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1557,7 +1671,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1169607215 RectTransform: m_ObjectHideFlags: 0 @@ -1572,7 +1686,7 @@ RectTransform: m_Children: - {fileID: 947957493} m_Father: {fileID: 3582334443270902937} - m_RootOrder: 3 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1661,6 +1775,50 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1169607214} m_CullTransparentMesh: 1 +--- !u!1 &1456929662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1456929664} + - component: {fileID: 1456929663} + m_Layer: 0 + m_Name: SpriteLoader + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1456929663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1456929662} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a6288ab659a946d2a8819eb4d8fbb41, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1456929664 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1456929662} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1475694346 PrefabInstance: m_ObjectHideFlags: 0 @@ -2009,6 +2167,37 @@ Transform: m_Father: {fileID: 679643787} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2043477945 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2043477946} + m_Layer: 0 + m_Name: PackZoomPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2043477946 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2043477945} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.52485406, y: -1.9295638, z: -0.04864381} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2082871783 GameObject: m_ObjectHideFlags: 0 @@ -2272,6 +2461,7 @@ MonoBehaviour: card_spacing: 100 card_angle: 10 card_offset_y: 10 + buyButton: {fileID: 385062620} --- !u!225 &3582334442768679839 CanvasGroup: m_ObjectHideFlags: 0 @@ -2280,7 +2470,7 @@ CanvasGroup: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3582334442768679837} m_Enabled: 1 - m_Alpha: 0 + m_Alpha: 1 m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 @@ -2318,9 +2508,8 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3582334442768679834} - - {fileID: 61204} - - {fileID: 153241174} - {fileID: 1169607215} + - {fileID: 385062619} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/TcgEngine/Scripts/Data/AbilityData.cs b/Assets/TcgEngine/Scripts/Data/AbilityData.cs index 25511a1..bd45784 100644 --- a/Assets/TcgEngine/Scripts/Data/AbilityData.cs +++ b/Assets/TcgEngine/Scripts/Data/AbilityData.cs @@ -6,7 +6,7 @@ using TcgEngine.Gameplay; namespace TcgEngine { /// - /// Defines all ability data + /// 定义所有能力数据 /// [CreateAssetMenu(fileName = "ability", menuName = "TcgEngine/AbilityData", order = 5)] diff --git a/Assets/TcgEngine/Scripts/Data/DataLoader.cs b/Assets/TcgEngine/Scripts/Data/DataLoader.cs index d069153..749b9ff 100644 --- a/Assets/TcgEngine/Scripts/Data/DataLoader.cs +++ b/Assets/TcgEngine/Scripts/Data/DataLoader.cs @@ -1,7 +1,9 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using UnityEngine; using TcgEngine.Client; +using TcgEngine.UI; namespace TcgEngine { @@ -19,6 +21,8 @@ namespace TcgEngine private HashSet ability_ids = new HashSet(); private HashSet deck_ids = new HashSet(); + public static Action onLoadComplete; + private static DataLoader instance; void Awake() @@ -27,29 +31,27 @@ namespace TcgEngine LoadData(); } - public void LoadData() + private void LoadData() { - //To make loading faster, add a path inside each Load() function, relative to Resources folder - //For example CardData.Load("Cards"); to only load data inside the Resources/Cards folder - CardData.Load(); - TeamData.Load(); - RarityData.Load(); - TraitData.Load(); - VariantData.Load(); - PackData.Load(); - LevelData.Load(); - DeckData.Load(); - AbilityData.Load(); - StatusData.Load(); - AvatarData.Load(); - CardbackData.Load(); - RewardData.Load(); - CardCoverData.Load(); - - CheckCardData(); - CheckAbilityData(); - CheckDeckData(); - CheckVariantData(); + CardData.Load(); + TeamData.Load(); + RarityData.Load(); + TraitData.Load(); + VariantData.Load(); + PackData.Load(); + LevelData.Load(); + DeckData.Load(); + AbilityData.Load(); + StatusData.Load(); + AvatarData.Load(); + CardbackData.Load(); + RewardData.Load(); + CardCoverData.Load(); + + CheckCardData(); + CheckAbilityData(); + CheckDeckData(); + CheckVariantData(); } //Make sure the data is valid @@ -93,7 +95,7 @@ namespace TcgEngine } } - //Make sure the data is valid + // 确保数据有效 private void CheckAbilityData() { ability_ids.Clear(); diff --git a/Assets/TcgEngine/Scripts/GameClient/HandPackArea.cs b/Assets/TcgEngine/Scripts/GameClient/HandPackArea.cs index 8af05f8..96b71d2 100644 --- a/Assets/TcgEngine/Scripts/GameClient/HandPackArea.cs +++ b/Assets/TcgEngine/Scripts/GameClient/HandPackArea.cs @@ -19,6 +19,8 @@ namespace TcgEngine.Client public float card_angle = 10f; public float card_offset_y = 10f; + public UIPanel buyButton; + private List packs = new List(); private Vector3 start_pos; @@ -66,6 +68,7 @@ namespace TcgEngine.Client public void RefreshPacks() { UserData udata = Authenticator.Get().UserData; + Debug.Log("玩家卡包有:"+udata.packs.Length+"种"); foreach (UserCardData pack in udata.packs) { Debug.Log("服务器返回的卡包tid:" + pack.tid+","); @@ -75,9 +78,10 @@ namespace TcgEngine.Client PackData dpack = PackData.Get(pack.tid); if (dpack != null && !HasPack(pack.tid)) SpawnNewPack(pack); + Debug.Log($"其中有{pack.tid}:{pack.quantity}个"); } - //Remove removed cards + // 移除已移除的卡片 for (int i = packs.Count - 1; i >= 0; i--) { HandPack pack = packs[i]; @@ -88,6 +92,15 @@ namespace TcgEngine.Client pack.Remove(); } } + + if (udata.packs==null || udata.packs.Length == 0) + { + buyButton.Show(); + } + else + { + buyButton.Hide(); + } } void Update() diff --git a/Assets/TcgEngine/Scripts/GameClient/PackCard.cs b/Assets/TcgEngine/Scripts/GameClient/PackCard.cs index 1dc7f50..d7a86ad 100644 --- a/Assets/TcgEngine/Scripts/GameClient/PackCard.cs +++ b/Assets/TcgEngine/Scripts/GameClient/PackCard.cs @@ -37,6 +37,8 @@ namespace TcgEngine.Client private bool removed = false; private bool is_new = false; private float timer = 0f; + + private bool hasOpenedStandardPack = false; private static List card_list = new List(); @@ -61,12 +63,9 @@ namespace TcgEngine.Client transform.rotation = Quaternion.Slerp(transform.rotation, rtarget, flip_speed * Time.deltaTime); } - if (removed && timer > 4f) - Destroy(gameObject); - - if (card_list.Count==5) + if (removed && timer > 1f) { - + Destroy(gameObject); } } diff --git a/Assets/TcgEngine/Scripts/Menu/CollectionPanel.cs b/Assets/TcgEngine/Scripts/Menu/CollectionPanel.cs index 13305b7..5b429a1 100644 --- a/Assets/TcgEngine/Scripts/Menu/CollectionPanel.cs +++ b/Assets/TcgEngine/Scripts/Menu/CollectionPanel.cs @@ -102,7 +102,7 @@ namespace TcgEngine.UI { base.Start(); - //Set power abilities hover text + // 设置点击能力悬停文本 foreach (IconButton btn in hero_powers) { CardData icard = CardData.Get(btn.GetValue()); @@ -117,10 +117,6 @@ namespace TcgEngine.UI hover.text += " Mana: " + iability.mana_cost + ""; } } - if (!spawned) - { - SpawnCards(); - } } protected override void Update() @@ -149,7 +145,7 @@ namespace TcgEngine.UI } } } - + private void SpawnCards() { spawned = true; @@ -200,7 +196,7 @@ namespace TcgEngine.UI //----- Refresh UI -------- - private void RefreshAll() + public void RefreshAll() { RefreshFilters(); RefreshCards(); diff --git a/Assets/TcgEngine/Scripts/Menu/OpenPackMenu.cs b/Assets/TcgEngine/Scripts/Menu/OpenPackMenu.cs index 2471b65..41de0f9 100644 --- a/Assets/TcgEngine/Scripts/Menu/OpenPackMenu.cs +++ b/Assets/TcgEngine/Scripts/Menu/OpenPackMenu.cs @@ -1,7 +1,10 @@ +using System; using System.Collections; using System.Collections.Generic; using System.Threading.Tasks; +using TcgEngine.UI; using UnityEngine; +using Random = UnityEngine.Random; namespace TcgEngine.Client { @@ -12,7 +15,10 @@ namespace TcgEngine.Client public class OpenPackMenu : MonoBehaviour { public GameObject card_prefab; - + + public PackBuyPanel packBuyPanel; + + private bool revealing = false; private static OpenPackMenu instance; @@ -20,6 +26,7 @@ namespace TcgEngine.Client void Awake() { instance = this; + packBuyPanel.SetPack(PlayerPrefs.GetString("pack_id")); } void Update() diff --git a/Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs b/Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs new file mode 100644 index 0000000..908a82a --- /dev/null +++ b/Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs @@ -0,0 +1,90 @@ +using System.Collections; +using System.Collections.Generic; +using TcgEngine.Client; +using UnityEngine; +using UnityEngine.UI; + +namespace TcgEngine.UI +{ + /// + /// 简化卡包购买面板,只提供“买1包”和“买2包”按钮,保留API购买逻辑 + /// + public class PackBuyPanel : UIPanel + { + public Button buy_five_btn; // 购买1张按钮 + public Button buy_ten_btn; // 购买2张按钮 + + [Header("准备购买数据!")] + public PackData pack; // 当前购买的卡包数据 + + + protected override void Awake() + { + base.Awake(); + this.Show(); + + buy_five_btn.onClick.AddListener(() => OnClickBuy(1)); + buy_ten_btn.onClick.AddListener(() => OnClickBuy(2)); + } + + private void OnDestroy() + { + buy_five_btn.onClick.RemoveAllListeners(); + buy_ten_btn.onClick.RemoveAllListeners(); + } + + /// + /// id传输 + /// + /// 卡牌id + public void SetPack(string packId) + { + pack = PackData.Get(packId); + } + + public void SetPack(PackData pack) + { + this.pack = pack; + Show(); + } + + private async void BuyPackApi(int quantity) + { + if (pack == null || quantity <= 0) return; + + BuyPackRequest req = new BuyPackRequest + { + pack = pack.id, + quantity = quantity + }; + + string url = ApiClient.ServerURL + "/users/packs/buy/"; + string jdata = ApiTool.ToJson(req); + + WebResponse res = await ApiClient.Get().SendPostRequest(url, jdata); + if (res.success) + { + if (PackPanel.Get() != null) + { + PackPanel.Get()?.ReloadUserPack(); + PackPanel.Get()?.RefreshCurrency(); + } + + if (HandPackArea.Get() != null) + { + HandPackArea.Get().LoadPacks(); + } + } + else + { + Debug.LogError(res.error); + } + } + + private void OnClickBuy(int quantity) + { + BuyPackApi(quantity); + } + } +} + diff --git a/Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs.meta b/Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs.meta new file mode 100644 index 0000000..86ad738 --- /dev/null +++ b/Assets/TcgEngine/Scripts/Menu/PackBuyPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ff8ebde9cba8f9548a236d8789ee537e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TcgEngine/Scripts/Menu/PackPanel.cs b/Assets/TcgEngine/Scripts/Menu/PackPanel.cs index 0eb11b2..f0f1528 100644 --- a/Assets/TcgEngine/Scripts/Menu/PackPanel.cs +++ b/Assets/TcgEngine/Scripts/Menu/PackPanel.cs @@ -19,9 +19,12 @@ namespace TcgEngine.UI [Header("货币")] public Text coin; public Text crystal; - + [Header("当前选择准备卡组")] + public Toggle standard_toggle; + public Toggle elite_toggle; public PackData preparePack; + public PackBuyPanel packBuyPanel; private List pack_list = new List(); @@ -40,6 +43,15 @@ namespace TcgEngine.UI protected override void Start() { base.Start(); + + if (standard_toggle != null) + standard_toggle.onValueChanged.AddListener(OnToggleStandard); + + if (elite_toggle != null) + elite_toggle.onValueChanged.AddListener(OnToggleElite); + + // 默认设置卡组 + OnToggleStandard(standard_toggle.isOn); } protected override void Update() @@ -80,10 +92,6 @@ namespace TcgEngine.UI pack_ui.onClick += OnClickPack; pack_ui.onClickRight += OnClickPack; pack_list.Add(nPack); - if (pack.title == "白银卡包") - { - SetPackData(pack); - } } } @@ -100,16 +108,6 @@ namespace TcgEngine.UI } } - private void OnClickPack() - { - - if (preparePack != null) - { - PackZoomPanel.Get().OnClickBuy(preparePack); - } - - } - /// /// 刷新货币 /// @@ -118,20 +116,6 @@ namespace TcgEngine.UI coin.text = MainMenu.Get().credits_txt.text; crystal.text = MainMenu.Get().crystalText.text; } - - /// - /// 设置即将打开卡包的数据 - /// - private string SetPackData(PackData pack) - { - PlayerPrefs.SetString("SetPack",pack.id); - if (PlayerPrefs.GetString("SetPack") != null) - { - string setPack = PlayerPrefs.GetString("SetPack"); - Debug.Log($"已设置{setPack},准备就绪"); - } - return PlayerPrefs.GetString("SetPack"); - } public void OnClickPack(PackUI pack) { @@ -147,6 +131,35 @@ namespace TcgEngine.UI { MainMenu.Get().FadeToScene("OpenPack"); } + + private void OnToggleStandard(bool value) + { + if (value) + { + // 设置当前卡组为标准卡组 + preparePack = PackData.Get("standard"); + SetBuyPack("standard"); + Debug.Log("当前选择标准卡组"); + } + } + private void OnToggleElite(bool value) + { + if (value) + { + // 设置当前卡组为精英卡组 + preparePack = PackData.Get("elite"); + SetBuyPack("elite"); + Debug.Log("当前选择精英卡组"); + } + } + + private void SetBuyPack(string packId) + { + packBuyPanel.SetPack(packId); + PlayerPrefs.SetString("pack_id", packId); + } + + public override void Show(bool instant = false) { diff --git a/Assets/TcgEngine/Scripts/Menu/PackZoomPanel.cs b/Assets/TcgEngine/Scripts/Menu/PackZoomPanel.cs index f0965c1..3d2ca84 100644 --- a/Assets/TcgEngine/Scripts/Menu/PackZoomPanel.cs +++ b/Assets/TcgEngine/Scripts/Menu/PackZoomPanel.cs @@ -120,19 +120,6 @@ namespace TcgEngine.UI } } - public void OnClickBuy(PackData setPack) - { - pack = setPack; - if (Authenticator.Get().IsTest()) - { - BuyPackTest(); - } - if (Authenticator.Get().IsApi()) - { - BuyPackApi(); - } - } - private void OnClickTab(TabButton btn) { if (btn.group == "menu") diff --git a/Assets/TcgEngine/Scripts/UI/HoverTargetUI.cs b/Assets/TcgEngine/Scripts/UI/HoverTargetUI.cs index cfe537b..0d0da99 100644 --- a/Assets/TcgEngine/Scripts/UI/HoverTargetUI.cs +++ b/Assets/TcgEngine/Scripts/UI/HoverTargetUI.cs @@ -7,7 +7,7 @@ using UnityEngine.EventSystems; namespace TcgEngine.UI { /// - /// Target in the UI that can be hovered (and text will appear) + /// 在UI中可以悬停的目标(并且文本将出现) /// public class HoverTargetUI : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler diff --git a/Assets/TcgEngine/Scripts/UI/PresetDeck.cs b/Assets/TcgEngine/Scripts/UI/PresetDeck.cs index acd7177..07cd73f 100644 --- a/Assets/TcgEngine/Scripts/UI/PresetDeck.cs +++ b/Assets/TcgEngine/Scripts/UI/PresetDeck.cs @@ -235,7 +235,7 @@ namespace TcgEngine.UI /// /// 关闭预设面板 /// - private void OffPresetLineupPanle() + public void OffPresetLineupPanle() { preset_lineup.Hide(); hide_panel.Hide();