From 9be98366faff557137249f48d8578a7e725c9f89 Mon Sep 17 00:00:00 2001 From: NTG_Lenovo Date: Tue, 10 Sep 2024 16:26:29 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=A0=20=EC=A0=9C=EC=A1=B0=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/01.Scenes/01.Tycoon.unity | 539 +++++++++++------- .../02.Scripts/Item/Cocktail/CocktailData.cs | 32 +- .../Item/Cocktail/CocktailIngredient.cs | 6 +- Assets/02.Scripts/Item/Cocktail/LiquidData.cs | 53 +- Assets/02.Scripts/Item/ItemManager.cs | 7 +- Assets/02.Scripts/LiquidController.cs | 154 +++-- Assets/02.Scripts/Prop/Tycoon/Barrel.cs | 72 +++ .../Tycoon/{Liquid.cs.meta => Barrel.cs.meta} | 0 Assets/02.Scripts/Prop/Tycoon/Brewing.cs | 94 +-- Assets/02.Scripts/Prop/Tycoon/Liquid.cs | 32 -- .../Item/CocktailDataTable.asset | 286 ++++++---- .../Item/LiquidDataTable.asset | 121 +--- Assets/02.Scripts/Tycoon/TycoonData.cs | 4 +- Assets/02.Scripts/Tycoon/TycoonEvents.cs | 9 +- Assets/02.Scripts/Ui/Tycoon/BrewingUi.cs | 378 ++++++------ .../Ui/Tycoon/LiquidRecipeSlotUi.cs | 4 +- .../02.Scripts/Ui/Tycoon/TycoonUiManager.cs | 6 +- Assets/Resources/Excel/CocktailDataTable.xlsx | Bin 11412 -> 9952 bytes Assets/Resources/Excel/LiquidDataTable.xlsx | Bin 11657 -> 8936 bytes Assets/Resources/JSON/CocktailDataTable.json | 276 ++++++--- Assets/Resources/JSON/LiquidDataTable.json | 113 +--- 21 files changed, 1215 insertions(+), 971 deletions(-) create mode 100644 Assets/02.Scripts/Prop/Tycoon/Barrel.cs rename Assets/02.Scripts/Prop/Tycoon/{Liquid.cs.meta => Barrel.cs.meta} (100%) delete mode 100644 Assets/02.Scripts/Prop/Tycoon/Liquid.cs diff --git a/Assets/01.Scenes/01.Tycoon.unity b/Assets/01.Scenes/01.Tycoon.unity index f0b74e7ce..6a46c019a 100644 --- a/Assets/01.Scenes/01.Tycoon.unity +++ b/Assets/01.Scenes/01.Tycoon.unity @@ -1107,6 +1107,83 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 5685570007726524012, guid: 7e6ba4001b3b92a4d8fdd586f6d0f731, type: 3} m_PrefabInstance: {fileID: 65862157} m_PrefabAsset: {fileID: 0} +--- !u!1001 &75333518 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.x + value: -13 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.z + value: 4.47 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _idx + value: LiquidD + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _liquidController + value: + objectReference: {fileID: 1006730367} + - target: {fileID: 5897095096647521783, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_Name + value: Barrel (3) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} --- !u!1 &79484690 GameObject: m_ObjectHideFlags: 0 @@ -2324,6 +2401,83 @@ Transform: m_CorrespondingSourceObject: {fileID: 2798544366308408093, guid: 9ce588004bafc1e4e9617fdaa2d77c8d, type: 3} m_PrefabInstance: {fileID: 5626406452199475265} m_PrefabAsset: {fileID: 0} +--- !u!1001 &214275878 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.x + value: -14 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.z + value: 4.47 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _idx + value: LiquidC + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _liquidController + value: + objectReference: {fileID: 1006730367} + - target: {fileID: 5897095096647521783, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_Name + value: Barrel (2) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} --- !u!1 &215611423 GameObject: m_ObjectHideFlags: 0 @@ -6520,6 +6674,83 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 677143481} m_CullTransparentMesh: 1 +--- !u!1001 &679106599 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.x + value: -15 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.z + value: 4.47 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _idx + value: LiquidB + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _liquidController + value: + objectReference: {fileID: 1006730367} + - target: {fileID: 5897095096647521783, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_Name + value: Barrel (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} --- !u!1 &713557313 GameObject: m_ObjectHideFlags: 0 @@ -7412,6 +7643,83 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 5685570007726524012, guid: 7e6ba4001b3b92a4d8fdd586f6d0f731, type: 3} m_PrefabInstance: {fileID: 810401071} m_PrefabAsset: {fileID: 0} +--- !u!1001 &828349206 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.x + value: -12 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalPosition.z + value: 4.47 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _idx + value: LiquidE + objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _liquidController + value: + objectReference: {fileID: 1006730367} + - target: {fileID: 5897095096647521783, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: m_Name + value: Barrel (4) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} --- !u!1001 &842924126 PrefabInstance: m_ObjectHideFlags: 0 @@ -8298,11 +8606,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 15c02fef22ba8d0488bd2517167c117c, type: 3} ---- !u!4 &884456513 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6495816087516714767, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - m_PrefabInstance: {fileID: 8752897640629310614} - m_PrefabAsset: {fileID: 0} --- !u!1 &891021167 GameObject: m_ObjectHideFlags: 0 @@ -8508,17 +8811,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 4291285538023367731, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} m_PrefabInstance: {fileID: 909457639} m_PrefabAsset: {fileID: 0} ---- !u!114 &909457641 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 267286335665872847, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} - m_PrefabInstance: {fileID: 909457639} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9cbe519b68d07ad4285f091528d6a34d, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &963867002 GameObject: m_ObjectHideFlags: 0 @@ -9035,6 +9327,7 @@ MonoBehaviour: _colorIntensity: 2 _objectPoolCount: 1000 _moveDuration: 0.5 + _currentBarrel: {fileID: 0} --- !u!1001 &1011627381 PrefabInstance: m_ObjectHideFlags: 0 @@ -9447,7 +9740,6 @@ MonoBehaviour: k__BackingField: {fileID: 1496452083} k__BackingField: {fileID: 102499729} k__BackingField: {fileID: 1733600343} - k__BackingField: {fileID: 1909799358} _fadeImage: {fileID: 2055805162} --- !u!114 &1049919594 MonoBehaviour: @@ -13295,7 +13587,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 1909799358} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: BlueWater.Uis.BrewingUi, Assembly-CSharp m_MethodName: ConvertButton m_Mode: 1 @@ -14912,17 +15204,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 4291285538023367731, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} m_PrefabInstance: {fileID: 8086743652407108747} m_PrefabAsset: {fileID: 0} ---- !u!114 &1518298344 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 267286335665872847, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} - m_PrefabInstance: {fileID: 8086743652407108747} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9cbe519b68d07ad4285f091528d6a34d, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &1527652764 GameObject: m_ObjectHideFlags: 0 @@ -15829,17 +16110,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 4291285538023367731, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} m_PrefabInstance: {fileID: 1627308700} m_PrefabAsset: {fileID: 0} ---- !u!114 &1627308702 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 267286335665872847, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} - m_PrefabInstance: {fileID: 1627308700} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9cbe519b68d07ad4285f091528d6a34d, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &1628404463 PrefabInstance: m_ObjectHideFlags: 0 @@ -19843,7 +20113,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} propertyPath: m_LocalPosition.x - value: -13.37 + value: -16 objectReference: {fileID: 0} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} propertyPath: m_LocalPosition.y @@ -19881,13 +20151,17 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} + propertyPath: _idx + value: LiquidA + objectReference: {fileID: 0} - target: {fileID: 1535180298174803447, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} propertyPath: _liquidController value: objectReference: {fileID: 1006730367} - target: {fileID: 5897095096647521783, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} propertyPath: m_Name - value: Liquid + value: Barrel objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] @@ -19903,7 +20177,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1909799357} - - component: {fileID: 1909799358} m_Layer: 5 m_Name: BrewingUi m_TagString: Untagged @@ -19932,47 +20205,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1909799358 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1909799356} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e31b5881c81ad924b93ec7dcfe7baf19, type: 3} - m_Name: - m_EditorClassIdentifier: - SwitchMapsOpened: 2 - SwitchMapsClosed: 1 - liquidRecipeSlotUiPrefab: {fileID: 282528693430034096, guid: 5d001eb1c848ebd468b622667d90cad8, type: 3} - _drinkRecipeSpawnLocation: {fileID: 1858488035} - _recipeName: {fileID: 713557315} - _drinkImage: {fileID: 1835523529} - _convertButton: {fileID: 1381895787} - _brewingIngredientSlotUis: - - {fileID: 1518298344} - - {fileID: 909457641} - - {fileID: 1627308702} - selectedLiquidData: - k__BackingField: - k__BackingField: - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: - k__BackingField: 0 - k__BackingField: - k__BackingField: 0 - k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 0} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} - _currentBrewing: {fileID: 0} --- !u!1 &1918605129 GameObject: m_ObjectHideFlags: 0 @@ -20848,7 +21080,7 @@ Camera: m_Depth: 0 m_CullingMask: serializedVersion: 2 - m_Bits: 2147745791 + m_Bits: 2147614719 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 @@ -21769,7 +22001,7 @@ GameObject: - component: {fileID: 2105041735} - component: {fileID: 2105041734} - component: {fileID: 2105041736} - m_Layer: 0 + m_Layer: 18 m_Name: LiquidRenderTexture m_TagString: Untagged m_Icon: {fileID: 0} @@ -24135,7 +24367,7 @@ PrefabInstance: - target: {fileID: 4385792948314753237, guid: 981817fdc4897a34bafc0040f15656b9, type: 3} propertyPath: _targetTransform value: - objectReference: {fileID: 884456513} + objectReference: {fileID: 0} - target: {fileID: 9041926907780427371, guid: 981817fdc4897a34bafc0040f15656b9, type: 3} propertyPath: m_Name value: TycoonMap @@ -24145,11 +24377,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 981817fdc4897a34bafc0040f15656b9, type: 3} ---- !u!4 &7827484746149782378 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 4353418070280708860, guid: 981817fdc4897a34bafc0040f15656b9, type: 3} - m_PrefabInstance: {fileID: 7827484746149782377} - m_PrefabAsset: {fileID: 0} --- !u!1001 &8086743652407108747 PrefabInstance: m_ObjectHideFlags: 0 @@ -24251,127 +24478,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f9e46dadb5448ee4883f8b114e9c6488, type: 3} ---- !u!1001 &8752897640629310614 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 912470863235380595, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 1086074593099002285, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 1666635675717542762, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 1890371639221043381, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 2722074097486048961, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalPosition.x - value: 300 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2886802892998475356, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2996670218762927670, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 3095287805770434576, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 3693116244118559590, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 4219651580152309109, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 4997544144761056320, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 5779811900454425323, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 6130559905385202114, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 6526493802215800102, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: _targetTransform - value: - objectReference: {fileID: 7827484746149782378} - - target: {fileID: 6957473214045006851, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 7151238213608218518, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - - target: {fileID: 7174987760914822137, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Name - value: BreweryMap - objectReference: {fileID: 0} - - target: {fileID: 8465324282818528478, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} - propertyPath: m_Camera - value: - objectReference: {fileID: 873223991} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: f7c3d6c0326461c4a97315587aa777d3, type: 3} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -24379,8 +24485,8 @@ SceneRoots: - {fileID: 166220741} - {fileID: 88262798} - {fileID: 873223992} - - {fileID: 1774013120} - {fileID: 1985878520} + - {fileID: 1774013120} - {fileID: 1634548838} - {fileID: 355668244} - {fileID: 1222632321} @@ -24401,9 +24507,12 @@ SceneRoots: - {fileID: 141729588} - {fileID: 852387592} - {fileID: 7827484746149782377} - - {fileID: 8752897640629310614} - {fileID: 5626406452199475265} - {fileID: 1899123652} + - {fileID: 679106599} + - {fileID: 214275878} + - {fileID: 75333518} + - {fileID: 828349206} - {fileID: 1006730365} - {fileID: 20736010} - {fileID: 218784750} diff --git a/Assets/02.Scripts/Item/Cocktail/CocktailData.cs b/Assets/02.Scripts/Item/Cocktail/CocktailData.cs index a319fea1d..22546007f 100644 --- a/Assets/02.Scripts/Item/Cocktail/CocktailData.cs +++ b/Assets/02.Scripts/Item/Cocktail/CocktailData.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using BlueWater.Interfaces; -using Newtonsoft.Json; using Sirenix.OdinInspector; using UnityEngine; @@ -24,31 +23,31 @@ namespace BlueWater.Items public string IngredientIdx1 { get; set; } [field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientRatio1 { get; set; } + public int IngredientAmount1 { get; set; } [field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx2 { get; set; } [field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientRatio2 { get; set; } + public int IngredientAmount2 { get; set; } [field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx3 { get; set; } [field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientRatio3 { get; set; } + public int IngredientAmount3 { get; set; } [field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx4 { get; set; } [field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientRatio4 { get; set; } + public int IngredientAmount4 { get; set; } [field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx5 { get; set; } [field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientRatio5 { get; set; } + public int IngredientAmount5 { get; set; } [BoxGroup("직접 추가하는 영역")] [field: SerializeField, BoxGroup("직접 추가하는 영역")] @@ -58,13 +57,24 @@ namespace BlueWater.Items { var ingredients = new List(5); - if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new CocktailIngredient(IngredientIdx1, IngredientRatio1)); - if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new CocktailIngredient(IngredientIdx2, IngredientRatio2)); - if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new CocktailIngredient(IngredientIdx3, IngredientRatio3)); - if (!string.IsNullOrEmpty(IngredientIdx4)) ingredients.Add(new CocktailIngredient(IngredientIdx4, IngredientRatio4)); - if (!string.IsNullOrEmpty(IngredientIdx5)) ingredients.Add(new CocktailIngredient(IngredientIdx5, IngredientRatio5)); + if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new CocktailIngredient(IngredientIdx1, IngredientAmount1)); + if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new CocktailIngredient(IngredientIdx2, IngredientAmount2)); + if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new CocktailIngredient(IngredientIdx3, IngredientAmount3)); + if (!string.IsNullOrEmpty(IngredientIdx4)) ingredients.Add(new CocktailIngredient(IngredientIdx4, IngredientAmount4)); + if (!string.IsNullOrEmpty(IngredientIdx5)) ingredients.Add(new CocktailIngredient(IngredientIdx5, IngredientAmount5)); return ingredients; } + + public int GetCocktailAmount(List cocktailIngredients) + { + var amount = 0; + foreach (var element in cocktailIngredients) + { + amount += element.Amount; + } + + return amount; + } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs b/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs index b28fb3076..92d79027d 100644 --- a/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs +++ b/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs @@ -6,12 +6,12 @@ namespace BlueWater.Items public class CocktailIngredient { public string Idx { get; set; } - public int Ratio { get; set; } + public int Amount { get; set; } - public CocktailIngredient(string idx, int quantity) + public CocktailIngredient(string idx, int amount) { Idx = idx; - Ratio = quantity; + Amount = amount; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Item/Cocktail/LiquidData.cs b/Assets/02.Scripts/Item/Cocktail/LiquidData.cs index 79445c72c..28ad63817 100644 --- a/Assets/02.Scripts/Item/Cocktail/LiquidData.cs +++ b/Assets/02.Scripts/Item/Cocktail/LiquidData.cs @@ -1,18 +1,10 @@ using System; -using System.Collections.Generic; using BlueWater.Interfaces; using Sirenix.OdinInspector; using UnityEngine; namespace BlueWater.Items { - public enum DrinkCategory - { - None = 0, - Alcohol, - Garnish - } - [Serializable] public class LiquidData : IIdx { @@ -22,43 +14,10 @@ namespace BlueWater.Items [field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")] public string Name { get; set; } - - [field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")] - public DrinkCategory Category { get; set; } [field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")] public int Amount { get; set; } - [field: SerializeField, Tooltip("도수"), BoxGroup("Json 데이터 영역")] - public int AlcoholVolume { get; set; } - - [field: SerializeField, Tooltip("온도"), BoxGroup("Json 데이터 영역")] - public int Temperature { get; set; } - - [field: SerializeField, Tooltip("맛"), BoxGroup("Json 데이터 영역")] - public int BitterSweet { get; set; } - - [field: SerializeField, Tooltip("향"), BoxGroup("Json 데이터 영역")] - public int Scent { get; set; } - - [field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] - public string IngredientIdx1 { get; set; } - - [field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientQuantity1 { get; set; } - - [field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] - public string IngredientIdx2 { get; set; } - - [field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientQuantity2 { get; set; } - - [field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] - public string IngredientIdx3 { get; set; } - - [field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientQuantity3 { get; set; } - [BoxGroup("직접 추가하는 영역")] [field: SerializeField, BoxGroup("직접 추가하는 영역")] public Sprite Sprite { get; set; } @@ -66,16 +25,10 @@ namespace BlueWater.Items [BoxGroup("직접 추가하는 영역")] [field: SerializeField, BoxGroup("직접 추가하는 영역")] public Color Color { get; set; } - - public List GetValidIngredients() + + public int GetMaxAmount() { - var ingredients = new List(3); - - if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new Ingredient(IngredientIdx1, IngredientQuantity1)); - if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new Ingredient(IngredientIdx2, IngredientQuantity2)); - if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new Ingredient(IngredientIdx3, IngredientQuantity3)); - - return ingredients; + return Amount == 99999 ? int.MaxValue : Amount; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Item/ItemManager.cs b/Assets/02.Scripts/Item/ItemManager.cs index d1e7644c6..fcbd7ef4b 100644 --- a/Assets/02.Scripts/Item/ItemManager.cs +++ b/Assets/02.Scripts/Item/ItemManager.cs @@ -31,7 +31,7 @@ namespace BlueWater.Items [FormerlySerializedAs("_drinkDataSo")] [SerializeField, Required] private LiquidDataSo liquidDataSo; - private Dictionary _drinkDatas; + private Dictionary _liquidDatas; [field: SerializeField, Required] public ItemSlotDataSo ItemSlotDataSo { get; private set; } @@ -58,7 +58,7 @@ namespace BlueWater.Items _itemDropTables = InitializeDictionary(_itemDropTableSo.ItemDropTables, table => table.CharacterData.CharacterIdx); _foodDatas = InitializeDictionary(_foodDataSo.Datas, data => data.Idx); _cocktailDatas = InitializeDictionary(_cocktailDataSo.Datas, data => data.Idx); - _drinkDatas = InitializeDictionary(liquidDataSo.Datas, data => data.Idx); + _liquidDatas = InitializeDictionary(liquidDataSo.Datas, data => data.Idx); } private Dictionary InitializeDictionary(List dataList, Func keySelector) @@ -134,6 +134,7 @@ namespace BlueWater.Items public FoodData GetFoodDataByIdx(string idx) => GetDataByIdx(_foodDatas, idx); public CocktailData GetCocktailDataByIdx(string idx) => GetDataByIdx(_cocktailDatas, idx); - public LiquidData GetDrinkDataByIdx(string idx) => GetDataByIdx(_drinkDatas, idx); + public Dictionary GetCocktailDatas() => _cocktailDatas; + public LiquidData GetLiquidDataByIdx(string idx) => GetDataByIdx(_liquidDatas, idx); } } \ No newline at end of file diff --git a/Assets/02.Scripts/LiquidController.cs b/Assets/02.Scripts/LiquidController.cs index 1405b6d48..4d1a6328c 100644 --- a/Assets/02.Scripts/LiquidController.cs +++ b/Assets/02.Scripts/LiquidController.cs @@ -1,10 +1,13 @@ using System.Collections.Generic; using System.Linq; +using BlueWater.Items; +using BlueWater.Tycoons; using DG.Tweening; using Sirenix.OdinInspector; using TMPro; using UnityEngine; using UnityEngine.Pool; +using UnityEngine.Serialization; namespace BlueWater { @@ -44,9 +47,6 @@ namespace BlueWater [Title("액체")] [SerializeField, Required, Tooltip("액체 프리팹")] private Liquid _liquidObject; - - [SerializeField, Tooltip("떨어지는 액체의 색상")] - private Color _liquidColor = new(1f, 0.8431373f, 0f, 1f); [SerializeField, Tooltip("초당 생성되는 액체 수(ml)")] private int _liquidsPerSecond = 80; @@ -68,9 +68,13 @@ namespace BlueWater [SerializeField] private float _moveDuration = 0.5f; + [Title("실시간 정보")] + [SerializeField] + private Barrel _currentBarrel; + private IObjectPool _objectPool; private List _activeLiquids = new(); - private Dictionary _colorCounts = new(); + private Dictionary _liquidDataCounts = new(); private Material _instanceMaterial; private Tween _showTween; private Tween _hideTween; @@ -113,9 +117,9 @@ namespace BlueWater _instanceMaterial = Instantiate(_liquidRenderer.material); _liquidRenderer.material = _instanceMaterial; - _timeInterval = 1f / _liquidsPerSecond; _instanceMaterial.SetFloat(_liquidAmountHash, 0f); - + _timeInterval = 1f / _liquidsPerSecond; + _instanceLiquidCount = 0; SetCurrentAmount(0f); } @@ -123,21 +127,30 @@ namespace BlueWater { if (_isPouring) { - if (_instanceLiquidCount >= _maxLiquidCount) + // 현재 술의 재고가 없을 때 + if (!_currentBarrel.CanConsume(1)) { InActiveIsPouring(); return; } + // 술이 완성되었을 때 + if (_instanceLiquidCount >= _maxLiquidCount) + { + CompleteLiquid(); + return; + } + if (Time.time - _startTime >= _timeInterval) { _objectPool.Get(); - if (!_colorCounts.TryAdd(_liquidColor, 1)) + if (!_liquidDataCounts.TryAdd(_currentBarrel.GetLiquidData(), 1)) { - _colorCounts[_liquidColor] += 1; + _liquidDataCounts[_currentBarrel.GetLiquidData()] += 1; } + _currentBarrel.Consume(1); _startTime = Time.time; } } @@ -157,19 +170,6 @@ namespace BlueWater #endregion - // Initialize methods - #region Initialize methods - - public void Initialize() - { - _instanceLiquidCount = 0; - SetCurrentAmount(0f); - _currentMixedColor = _liquidColor; - _instanceMaterial.SetColor(_liquidColorHash, _currentMixedColor * _colorIntensity); - } - - #endregion - // Object pooling system #region Object pooling system @@ -186,10 +186,11 @@ namespace BlueWater liquid.transform.rotation = Quaternion.identity; liquid.gameObject.SetActive(true); _instanceLiquidCount++; - liquid.Initialize(this, _reachedCollider, _liquidColor, _pushDirection.normalized * _pushPower); - if (_renderTexture && _renderTexture.material.GetColor(_renderTextureColorHash) != _liquidColor) + var liquidColor = _currentBarrel.GetLiquidData().Color; + liquid.Initialize(this, _reachedCollider, liquidColor, _pushDirection.normalized * _pushPower); + if (_renderTexture && _renderTexture.material.GetColor(_renderTextureColorHash) != liquidColor) { - _renderTexture.material.SetColor(_renderTextureColorHash, _liquidColor); + _renderTexture.material.SetColor(_renderTextureColorHash, liquidColor); } _activeLiquids.Add(liquid); } @@ -211,9 +212,6 @@ namespace BlueWater // Custom methods #region Custom methods - [Button("기본 색상")] - private void DefaultColor() => _liquidColor = new Color(1f, 0.8431373f, 0f, 1f); - /// /// 술 제조 과정 초기화 함수 /// @@ -225,14 +223,29 @@ namespace BlueWater _activeLiquids[i].Destroy(); } - _colorCounts.Clear(); + _liquidDataCounts.Clear(); _instanceLiquidCount = 0; SetCurrentAmount(0f); _instanceMaterial.SetFloat(_liquidAmountHash, 0f); } + /// + /// 현재 상호작용 중인 Barrel 연동 + /// + /// + public void SetBarrel(Barrel barrel) + { + _currentBarrel = barrel; + } + public void ActiveIsPouring() { + if (_instanceLiquidCount == 0) + { + _currentMixedColor = _currentBarrel.GetLiquidData().Color; + _instanceMaterial.SetColor(_liquidColorHash, _currentMixedColor * _colorIntensity); + } + _startTime = Time.time; _isPouring = true; } @@ -259,19 +272,96 @@ namespace BlueWater } } } + + /// + /// 술을 완성한 경우 + /// + private void CompleteLiquid() + { + InActiveIsPouring(); + // TODO : 완성된 음료를 데이터베이스와 비교하기 + var currentCocktailIngredients = new List(5); + foreach (var element in _liquidDataCounts) + { + var idx = element.Key.Idx; + var amount = element.Value; + currentCocktailIngredients.Add(new CocktailIngredient(idx, amount)); + } + + // ItemManager를 통해 모든 CocktailData 가져오기 + var cocktailDatas = ItemManager.Instance.GetCocktailDatas(); + CocktailData matchingCocktail = null; + + // 모든 칵테일 데이터를 순회하면서 조건에 맞는 칵테일 찾기 + foreach (var cocktailData in cocktailDatas.Values) + { + var validIngredients = cocktailData.GetValidIngredients(); + + // 조건 1: 재료 개수 동일 체크 + if (validIngredients.Count != currentCocktailIngredients.Count) + continue; + + var allIngredientsMatch = true; + + // 현재 음료 재료를 하나씩 validIngredients와 비교 + foreach (var currentIngredient in currentCocktailIngredients) + { + // 동일한 Idx를 가진 재료가 있는지 찾음 + var matchingValidIngredient = validIngredients.FirstOrDefault(ingredient => ingredient.Idx == currentIngredient.Idx); + + // 만약 Idx가 일치하는 재료가 없으면 조건 불충족 + if (matchingValidIngredient == null) + { + allIngredientsMatch = false; + break; + } + + // 조건 2: Amount 값이 RatioRange에 따른 오차 범위 내에 있는지 체크 + var validAmount = matchingValidIngredient.Amount; + //var maxLiquidCount = cocktailData.GetCocktailAmount(validIngredients); + var range = _maxLiquidCount / 100 * cocktailData.RatioRange; + var minAmount = validAmount - range; + var maxAmount = validAmount + range; + + if (currentIngredient.Amount < minAmount || currentIngredient.Amount > maxAmount) + { + allIngredientsMatch = false; + break; + } + } + + // 조건이 모두 만족하면 매칭되는 칵테일을 찾음 + if (allIngredientsMatch) + { + matchingCocktail = cocktailData; + break; + } + } + + // 조건에 만족하는 칵테일이 없음 + if (matchingCocktail == null) + { + matchingCocktail = ItemManager.Instance.GetCocktailDataByIdx("Cocktail000"); + } + + Debug.Log($"{matchingCocktail.Idx} 음료 완성"); + + + // TODO : 플레이어 이벤트를 통해 음료 들기 + } /// /// 사용된 색상의 비율에 맞게 색을 혼합시키는 함수 /// private Color MixColorsByTime() { - var totalCounts = _colorCounts.Values.Sum(); + var totalCounts = _liquidDataCounts.Values.Sum(); var mixedColor = Color.black; - foreach (var element in _colorCounts) + foreach (var element in _liquidDataCounts) { - var color = element.Key; + var color = element.Key.Color; var count = element.Value; var ratio = count / (float)totalCounts; diff --git a/Assets/02.Scripts/Prop/Tycoon/Barrel.cs b/Assets/02.Scripts/Prop/Tycoon/Barrel.cs new file mode 100644 index 000000000..d32e8ef58 --- /dev/null +++ b/Assets/02.Scripts/Prop/Tycoon/Barrel.cs @@ -0,0 +1,72 @@ +using BlueWater.Items; +using UnityEngine; + +namespace BlueWater.Tycoons +{ + public class Barrel : InteractionFurniture + { + [SerializeField] + private string _idx; + + [SerializeField] + private LiquidData _liquidData; + + [SerializeField] + private int _currentAmount; + + private LiquidController _liquidController; + + protected override void Awake() + { + base.Awake(); + + _liquidController = FindAnyObjectByType(); + _liquidData = ItemManager.Instance.GetLiquidDataByIdx(_idx); + _currentAmount = _liquidData.GetMaxAmount(); + } + + public override void Interaction() + { + _liquidController.SetBarrel(this); + _liquidController.ActiveIsPouring(); + } + + public override void CancelInteraction() + { + _liquidController.InActiveIsPouring(); + } + + /// + /// 1. 플레이어가 빈 잔을 들고 있거나 완성되지 않은 잔을 들고 있을 때 + /// + public override bool CanInteraction() + { + return true; + } + + public bool CanConsume(int amount) + { + return _currentAmount - amount > 0; + } + + public void Consume(int amount) + { + if (_currentAmount == int.MaxValue) + { + return; + } + + _currentAmount -= amount; + } + + public bool TryConsume(int amount) + { + if (!CanConsume(amount)) return false; + + Consume(amount); + return true; + } + + public LiquidData GetLiquidData() => _liquidData; + } +} \ No newline at end of file diff --git a/Assets/02.Scripts/Prop/Tycoon/Liquid.cs.meta b/Assets/02.Scripts/Prop/Tycoon/Barrel.cs.meta similarity index 100% rename from Assets/02.Scripts/Prop/Tycoon/Liquid.cs.meta rename to Assets/02.Scripts/Prop/Tycoon/Barrel.cs.meta diff --git a/Assets/02.Scripts/Prop/Tycoon/Brewing.cs b/Assets/02.Scripts/Prop/Tycoon/Brewing.cs index f127fd2ab..6cb9c3348 100644 --- a/Assets/02.Scripts/Prop/Tycoon/Brewing.cs +++ b/Assets/02.Scripts/Prop/Tycoon/Brewing.cs @@ -1,47 +1,47 @@ -using BlueWater.Items; -using BlueWater.Uis; -using UnityEngine; -using UnityEngine.Serialization; - -namespace BlueWater.Tycoons -{ - public class Brewing : InteractionFurniture - { - [SerializeField] - private DrinkCategory _category; - - [FormerlySerializedAs("_currentDrinkData")] [SerializeField] - private LiquidData currentLiquidData; - - [SerializeField] - private int _currentQuantity; - - public override void Interaction() - { - var brewingUi = TycoonUiManager.Instance.BrewingUi; - brewingUi.SetBrewing(this); - brewingUi.Open(TycoonUiManager.Instance.PopupUiList); - } - - public override bool CanInteraction() - { - return !IsOpened; - } - - public void SetDrink(LiquidData liquidData) - { - currentLiquidData = liquidData; - _currentQuantity = currentLiquidData.Amount; - } - - public bool IsEmptyDrink() - { - return currentLiquidData == null || _currentQuantity <= 0; - } - - public DrinkCategory GetDrinkCategory() - { - return _category; - } - } -} \ No newline at end of file +// using BlueWater.Items; +// using BlueWater.Uis; +// using UnityEngine; +// using UnityEngine.Serialization; +// +// namespace BlueWater.Tycoons +// { +// public class Brewing : InteractionFurniture +// { +// [SerializeField] +// private DrinkCategory _category; +// +// [FormerlySerializedAs("_currentDrinkData")] [SerializeField] +// private LiquidData currentLiquidData; +// +// [SerializeField] +// private int _currentQuantity; +// +// public override void Interaction() +// { +// var brewingUi = TycoonUiManager.Instance.BrewingUi; +// brewingUi.SetBrewing(this); +// brewingUi.Open(TycoonUiManager.Instance.PopupUiList); +// } +// +// public override bool CanInteraction() +// { +// return !IsOpened; +// } +// +// public void SetDrink(LiquidData liquidData) +// { +// currentLiquidData = liquidData; +// _currentQuantity = currentLiquidData.Amount; +// } +// +// public bool IsEmptyDrink() +// { +// return currentLiquidData == null || _currentQuantity <= 0; +// } +// +// public DrinkCategory GetDrinkCategory() +// { +// return _category; +// } +// } +// } \ No newline at end of file diff --git a/Assets/02.Scripts/Prop/Tycoon/Liquid.cs b/Assets/02.Scripts/Prop/Tycoon/Liquid.cs deleted file mode 100644 index c16f29e49..000000000 --- a/Assets/02.Scripts/Prop/Tycoon/Liquid.cs +++ /dev/null @@ -1,32 +0,0 @@ -using UnityEngine; - -namespace BlueWater.Tycoons -{ - public class Liquid : InteractionFurniture - { - [SerializeField] - private LiquidController _liquidController; - - protected override void Awake() - { - base.Awake(); - - _liquidController = FindAnyObjectByType(); - } - - public override void Interaction() - { - _liquidController.ActiveIsPouring(); - } - - public override void CancelInteraction() - { - _liquidController.InActiveIsPouring(); - } - - public override bool CanInteraction() - { - return true; - } - } -} \ No newline at end of file diff --git a/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset b/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset index ef4dceae2..2b6e03411 100644 --- a/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset +++ b/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset @@ -13,143 +13,227 @@ MonoBehaviour: m_Name: CocktailDataTable m_EditorClassIdentifier: k__BackingField: - - k__BackingField: Cocktail300 - k__BackingField: "\uB2EC\uBE5B \uC0D8\uBB3C" + - k__BackingField: Cocktail000 + k__BackingField: "\uC4F0\uB808\uAE30" k__BackingField: 0 - k__BackingField: Liquid100 - k__BackingField: 100 + k__BackingField: + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 06a07650d842ee94390ca2505955e94d, type: 3} - - k__BackingField: Cocktail301 - k__BackingField: "\uB9DD\uB839 \uB9E5\uC8FC" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail001 + k__BackingField: "\uCE75\uD14C\uC77CA" k__BackingField: 0 - k__BackingField: Liquid101 - k__BackingField: 100 + k__BackingField: LiquidA + k__BackingField: 400 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 19df9fcd0ddf5754890f7ea9c127b905, type: 3} - - k__BackingField: Cocktail302 - k__BackingField: "\uAC80\uC740 \uC218\uC5FC" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail002 + k__BackingField: "\uCE75\uD14C\uC77CB" k__BackingField: 0 - k__BackingField: Liquid102 - k__BackingField: 100 + k__BackingField: LiquidB + k__BackingField: 400 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: a51b37c5e512c7e488e80f986f5f8aac, type: 3} - - k__BackingField: Cocktail303 - k__BackingField: "\uC6A9\uC554 \uB9E5\uC8FC" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail003 + k__BackingField: "\uCE75\uD14C\uC77CC" k__BackingField: 0 - k__BackingField: Liquid103 - k__BackingField: 100 + k__BackingField: LiquidC + k__BackingField: 400 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: d74e702a3e490a54e8a159128222f175, type: 3} - - k__BackingField: Cocktail304 - k__BackingField: "\uC8FD\uC74C\uC758 \uC774\uC2AC" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail004 + k__BackingField: "\uCE75\uD14C\uC77CD" k__BackingField: 0 - k__BackingField: Liquid104 - k__BackingField: 100 + k__BackingField: LiquidD + k__BackingField: 400 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: bff0ff1345b7ae446b330a01e6ef7bd3, type: 3} - - k__BackingField: Cocktail305 - k__BackingField: "\uC5BC\uC74C" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail005 + k__BackingField: "\uCE75\uD14C\uC77CE" k__BackingField: 0 - k__BackingField: Garnish200 - k__BackingField: 100 + k__BackingField: LiquidE + k__BackingField: 400 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 006a36cba2a146247a1d25b9e246faaa, type: 3} - - k__BackingField: Cocktail306 - k__BackingField: "\uC5BC\uC5B4\uBD99\uC740 \uB9DD\uB839" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail006 + k__BackingField: "\uCE75\uD14C\uC77CAC" + k__BackingField: 5 + k__BackingField: LiquidA + k__BackingField: 200 + k__BackingField: LiquidC + k__BackingField: 200 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail007 + k__BackingField: "\uCE75\uD14C\uC77CBD" + k__BackingField: 5 + k__BackingField: LiquidB + k__BackingField: 200 + k__BackingField: LiquidD + k__BackingField: 200 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail008 + k__BackingField: "\uCE75\uD14C\uC77CCD" + k__BackingField: 5 + k__BackingField: LiquidC + k__BackingField: 200 + k__BackingField: LiquidD + k__BackingField: 200 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail009 + k__BackingField: "\uCE75\uD14C\uC77CABE" k__BackingField: 10 - k__BackingField: Liquid101 - k__BackingField: 80 - k__BackingField: Garnish200 - k__BackingField: 20 - k__BackingField: - k__BackingField: 0 + k__BackingField: LiquidA + k__BackingField: 100 + k__BackingField: LiquidB + k__BackingField: 100 + k__BackingField: LiquidE + k__BackingField: 200 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 31d7e535d499d5f43ab64731acc3eec3, type: 3} - - k__BackingField: Cocktail307 - k__BackingField: "\uC2AC\uB77C\uC784 \uD480" - k__BackingField: 25 - k__BackingField: Liquid100 - k__BackingField: 50 - k__BackingField: Garnish200 - k__BackingField: 50 - k__BackingField: - k__BackingField: 0 - k__BackingField: - k__BackingField: 0 - k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 997d0aea13894a9428bf9d9f7fb66762, type: 3} - - k__BackingField: Cocktail308 - k__BackingField: "\uBD88\uD0C4 \uC218\uC5FC" + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail010 + k__BackingField: "\uCE75\uD14C\uC77CCDE" k__BackingField: 10 - k__BackingField: Liquid102 - k__BackingField: 20 - k__BackingField: Liquid103 - k__BackingField: 80 - k__BackingField: - k__BackingField: 0 + k__BackingField: LiquidC + k__BackingField: 100 + k__BackingField: LiquidD + k__BackingField: 100 + k__BackingField: LiquidE + k__BackingField: 200 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 3d04bfa220b9ebe40a4ae3f0a68c0911, type: 3} - - k__BackingField: Cocktail309 - k__BackingField: "\uB77C\uBC14 \uACE0\uC2A4\uD2B8" - k__BackingField: 15 - k__BackingField: Liquid101 - k__BackingField: 50 - k__BackingField: Liquid103 - k__BackingField: 50 + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail011 + k__BackingField: "\uCE75\uD14C\uC77CB1" + k__BackingField: 10 + k__BackingField: LiquidB + k__BackingField: 320 + k__BackingField: Garnish1 + k__BackingField: 80 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: 09168d6395b3e9b41b195a2aa8ae0a82, type: 3} + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail012 + k__BackingField: "\uCE75\uD14C\uC77CD1" + k__BackingField: 10 + k__BackingField: LiquidD + k__BackingField: 320 + k__BackingField: Garnish1 + k__BackingField: 80 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail013 + k__BackingField: "\uCE75\uD14C\uC77CA2" + k__BackingField: 5 + k__BackingField: LiquidA + k__BackingField: 360 + k__BackingField: Garnish2 + k__BackingField: 40 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail014 + k__BackingField: "\uCE75\uD14C\uC77CC2" + k__BackingField: 5 + k__BackingField: LiquidC + k__BackingField: 360 + k__BackingField: Garnish2 + k__BackingField: 40 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} + - k__BackingField: Cocktail015 + k__BackingField: "\uCE75\uD14C\uC77CE2" + k__BackingField: 5 + k__BackingField: LiquidE + k__BackingField: 360 + k__BackingField: Garnish2 + k__BackingField: 40 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: + k__BackingField: 0 + k__BackingField: {fileID: 0} diff --git a/Assets/02.Scripts/ScriptableObject/Item/LiquidDataTable.asset b/Assets/02.Scripts/ScriptableObject/Item/LiquidDataTable.asset index 3177ceea3..dd40ac3de 100644 --- a/Assets/02.Scripts/ScriptableObject/Item/LiquidDataTable.asset +++ b/Assets/02.Scripts/ScriptableObject/Item/LiquidDataTable.asset @@ -13,99 +13,38 @@ MonoBehaviour: m_Name: LiquidDataTable m_EditorClassIdentifier: k__BackingField: - - k__BackingField: Garnish200 - k__BackingField: "\uC5BC\uC74C \uC2AC\uB77C\uC784\uC758 \uC870\uAC01" - k__BackingField: 2 - k__BackingField: 1000 - k__BackingField: 0 - k__BackingField: -20 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: Ingredient05 - k__BackingField: 2 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} - - k__BackingField: Liquid100 - k__BackingField: "\uB2EC\uBE5B \uC0D8\uBB3C \uC6D0\uC561" - k__BackingField: 1 - k__BackingField: 99999 - k__BackingField: 0 - k__BackingField: 10 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: {fileID: 0} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} - - k__BackingField: Liquid101 - k__BackingField: "\uB9DD\uB839 \uB9E5\uC8FC \uC6D0\uC561" - k__BackingField: 1 + - k__BackingField: Garnish1 + k__BackingField: "\uAC00\uB098\uC26C1" k__BackingField: 2000 - k__BackingField: 7 - k__BackingField: -20 - k__BackingField: -10 - k__BackingField: 0 - k__BackingField: Ingredient00 - k__BackingField: 2 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 k__BackingField: {fileID: 0} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} - - k__BackingField: Liquid102 - k__BackingField: "\uAC80\uC740 \uC218\uC5FC \uB7FC \uC6D0\uC561" - k__BackingField: 1 - k__BackingField: 1200 - k__BackingField: 20 - k__BackingField: -30 - k__BackingField: -15 - k__BackingField: 0 - k__BackingField: Ingredient01 - k__BackingField: 3 - k__BackingField: Ingredient00 - k__BackingField: 1 - k__BackingField: 0 - k__BackingField: 0 + k__BackingField: {r: 0, g: 0, b: 0, a: 1} + - k__BackingField: Garnish2 + k__BackingField: "\uAC00\uB098\uC26C2" + k__BackingField: 2000 k__BackingField: {fileID: 0} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} - - k__BackingField: Liquid103 - k__BackingField: "\uC6A9\uC554 \uB9E5\uC8FC \uC6D0\uC561" - k__BackingField: 1 - k__BackingField: 2800 - k__BackingField: 6 - k__BackingField: 20 - k__BackingField: 10 - k__BackingField: 0 - k__BackingField: Ingredient02 - k__BackingField: 1 - k__BackingField: Ingredient03 - k__BackingField: 3 - k__BackingField: 0 - k__BackingField: 0 + k__BackingField: {r: 0, g: 0, b: 0, a: 1} + - k__BackingField: LiquidA + k__BackingField: "\uC220 \uC6D0\uC561A" + k__BackingField: 99999 k__BackingField: {fileID: 0} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} - - k__BackingField: Liquid104 - k__BackingField: "\uC8FD\uC74C\uC758 \uC774\uC2AC \uC6D0\uC561" - k__BackingField: 1 - k__BackingField: 800 - k__BackingField: 30 - k__BackingField: -25 - k__BackingField: 20 - k__BackingField: 0 - k__BackingField: Ingredient04 - k__BackingField: 2 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 - k__BackingField: 0 + k__BackingField: {r: 1, g: 0, b: 0, a: 1} + - k__BackingField: LiquidB + k__BackingField: "\uC220 \uC6D0\uC561B" + k__BackingField: 2000 k__BackingField: {fileID: 0} - k__BackingField: {r: 0, g: 0, b: 0, a: 0} + k__BackingField: {r: 1, g: 0.5019608, b: 0, a: 1} + - k__BackingField: LiquidC + k__BackingField: "\uC220 \uC6D0\uC561C" + k__BackingField: 2000 + k__BackingField: {fileID: 0} + k__BackingField: {r: 1, g: 1, b: 0, a: 1} + - k__BackingField: LiquidD + k__BackingField: "\uC220 \uC6D0\uC561D" + k__BackingField: 2000 + k__BackingField: {fileID: 0} + k__BackingField: {r: 0, g: 1, b: 0, a: 1} + - k__BackingField: LiquidE + k__BackingField: "\uC220 \uC6D0\uC561E" + k__BackingField: 2000 + k__BackingField: {fileID: 0} + k__BackingField: {r: 0, g: 0, b: 1, a: 1} diff --git a/Assets/02.Scripts/Tycoon/TycoonData.cs b/Assets/02.Scripts/Tycoon/TycoonData.cs index 7b8e73a62..a0d7904e2 100644 --- a/Assets/02.Scripts/Tycoon/TycoonData.cs +++ b/Assets/02.Scripts/Tycoon/TycoonData.cs @@ -34,11 +34,11 @@ namespace BlueWater.Tycoons { if (DrinkRecipes.Contains(idx)) return; - var drinkData = ItemManager.Instance.GetDrinkDataByIdx(idx); + var drinkData = ItemManager.Instance.GetLiquidDataByIdx(idx); if (drinkData == null) return; DrinkRecipes.Add(idx); - TycoonEvents.OnDrinkRecipeAcquired?.Invoke(idx); + //TycoonEvents.OnDrinkRecipeAcquired?.Invoke(idx); } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Tycoon/TycoonEvents.cs b/Assets/02.Scripts/Tycoon/TycoonEvents.cs index 19c395e58..21f50d0bd 100644 --- a/Assets/02.Scripts/Tycoon/TycoonEvents.cs +++ b/Assets/02.Scripts/Tycoon/TycoonEvents.cs @@ -6,17 +6,12 @@ namespace BlueWater public static class TycoonEvents { // 음료 - public static Action OnDrinkRecipeAcquired; + // public static Action OnDrinkRecipeAcquired; + // public static Action OnDrinkRecipeSelected; public static Action OnLiquidRegionEntered; public static Action OnLiquidRegionExited; - public static Action OnBrewingUiOpened; - public static Action OnBrewingUiClosed; - public static Action OnDrinkRecipeSelected; - - public static Action OnDrinkUiOpened; - public static Action OnDrinkUiClosed; // 요리 diff --git a/Assets/02.Scripts/Ui/Tycoon/BrewingUi.cs b/Assets/02.Scripts/Ui/Tycoon/BrewingUi.cs index 7ffac9b6c..12f98e60f 100644 --- a/Assets/02.Scripts/Ui/Tycoon/BrewingUi.cs +++ b/Assets/02.Scripts/Ui/Tycoon/BrewingUi.cs @@ -1,189 +1,189 @@ -using System.Collections.Generic; -using BlueWater.Items; -using BlueWater.Tycoons; -using Sirenix.OdinInspector; -using TMPro; -using UnityEngine; -using UnityEngine.Serialization; -using UnityEngine.UI; - -namespace BlueWater.Uis -{ - public class BrewingUi : SwitchActionPopupUi - { - [FormerlySerializedAs("_drinkRecipeSlotUiPrefab")] [SerializeField, Required] - private LiquidRecipeSlotUi liquidRecipeSlotUiPrefab; - - [SerializeField, Required] - private Transform _drinkRecipeSpawnLocation; - - [SerializeField] - private TMP_Text _recipeName; - - [SerializeField] - private Image _drinkImage; - - [SerializeField] - private Button _convertButton; - - [Title("실시간 데이터")] - [SerializeField] - private List _brewingIngredientSlotUis = new(3); - - [FormerlySerializedAs("_selectedDrinkData")] [SerializeField] - private LiquidData selectedLiquidData; - - [SerializeField] - private Brewing _currentBrewing; - - private List _drinkRecipeSlotUis = new(); - - private void Start() - { - Initialize(); - - TycoonEvents.OnDrinkRecipeAcquired += AddDrinkRecipe; - TycoonEvents.OnDrinkRecipeSelected += SelectDrinkRecipe; - } - - private void OnDestroy() - { - TycoonEvents.OnDrinkRecipeAcquired -= AddDrinkRecipe; - TycoonEvents.OnDrinkRecipeSelected -= SelectDrinkRecipe; - } - - private void Initialize() - { - foreach (Transform element in _drinkRecipeSpawnLocation) - { - Destroy(element.gameObject); - } - - var drinkRecipes = DataManager.Instance.TycoonData.DrinkRecipes; - foreach (var element in drinkRecipes) - { - AddDrinkRecipe(element); - } - } - - public override void Open(List popupUiList) - { - base.Open(popupUiList); - - ResetBrewingUi(); - TycoonEvents.OnBrewingUiOpened?.Invoke(); - } - - public override void Close() - { - base.Close(); - - _currentBrewing = null; - ResetBrewingUi(); - TycoonEvents.OnBrewingUiClosed?.Invoke(); - } - - private void ResetBrewingUi() - { - selectedLiquidData = null; - _recipeName.text = null; - _drinkImage.enabled = false; - SetBrewingIngredient(); - foreach (var element in _brewingIngredientSlotUis) - { - element.gameObject.SetActive(false); - } - } - - public void SetBrewing(Brewing brewing) - { - _currentBrewing = brewing; - ShowDrinkRecipeByCategory(); - } - - private void AddDrinkRecipe(string idx) - { - var instance = Instantiate(liquidRecipeSlotUiPrefab, _drinkRecipeSpawnLocation); - instance.Initialize(idx); - _drinkRecipeSlotUis.Add(instance); - } - - private void ShowDrinkRecipeByCategory() - { - var currentDrinkCategory = _currentBrewing.GetDrinkCategory(); - foreach (var element in _drinkRecipeSlotUis) - { - element.gameObject.SetActive(currentDrinkCategory == element.GetDrinkData().Category); - } - } - - public void SelectDrinkRecipe(LiquidData liquidData) - { - selectedLiquidData = liquidData; - - _recipeName.text = selectedLiquidData.Name; - _drinkImage.sprite = liquidData.Sprite; - _drinkImage.enabled = true; - - var ingredients = selectedLiquidData.GetValidIngredients(); - for (var i = 0; i < 3; i++) - { - if (ingredients.Count > i) - { - _brewingIngredientSlotUis[i].SetIngredient(ingredients[i].Idx, ingredients[i].Quantity); - _brewingIngredientSlotUis[i].gameObject.SetActive(true); - } - else - { - _brewingIngredientSlotUis[i].gameObject.SetActive(false); - } - } - - SetBrewingIngredient(); - } - - private void SetBrewingIngredient() - { - foreach (var element in _brewingIngredientSlotUis) - { - element.SetQuantity(); - } - - CheckConvertButton(); - } - - private void CheckConvertButton() - { - if (selectedLiquidData == null || !_currentBrewing.IsEmptyDrink()) - { - _convertButton.interactable = false; - return; - } - - var ingredients = selectedLiquidData.GetValidIngredients(); - if (ingredients.Count <= 0) - { - _convertButton.interactable = false; - return; - } - - for (var i = 0; i < ingredients.Count; i++) - { - if (_brewingIngredientSlotUis[i].GetIsEnough()) continue; - - _convertButton.interactable = false; - return; - } - - _convertButton.interactable = true; - } - - /// - /// 술을 만들 때 최종 버튼 - /// - public void ConvertButton() - { - _currentBrewing.SetDrink(selectedLiquidData); - } - } -} \ No newline at end of file +// using System.Collections.Generic; +// using BlueWater.Items; +// using BlueWater.Tycoons; +// using Sirenix.OdinInspector; +// using TMPro; +// using UnityEngine; +// using UnityEngine.Serialization; +// using UnityEngine.UI; +// +// namespace BlueWater.Uis +// { +// public class BrewingUi : SwitchActionPopupUi +// { +// [FormerlySerializedAs("_drinkRecipeSlotUiPrefab")] [SerializeField, Required] +// private LiquidRecipeSlotUi liquidRecipeSlotUiPrefab; +// +// [SerializeField, Required] +// private Transform _drinkRecipeSpawnLocation; +// +// [SerializeField] +// private TMP_Text _recipeName; +// +// [SerializeField] +// private Image _drinkImage; +// +// [SerializeField] +// private Button _convertButton; +// +// [Title("실시간 데이터")] +// [SerializeField] +// private List _brewingIngredientSlotUis = new(3); +// +// [FormerlySerializedAs("_selectedDrinkData")] [SerializeField] +// private LiquidData selectedLiquidData; +// +// [SerializeField] +// private Brewing _currentBrewing; +// +// private List _drinkRecipeSlotUis = new(); +// +// private void Start() +// { +// Initialize(); +// +// TycoonEvents.OnDrinkRecipeAcquired += AddDrinkRecipe; +// TycoonEvents.OnDrinkRecipeSelected += SelectDrinkRecipe; +// } +// +// private void OnDestroy() +// { +// TycoonEvents.OnDrinkRecipeAcquired -= AddDrinkRecipe; +// TycoonEvents.OnDrinkRecipeSelected -= SelectDrinkRecipe; +// } +// +// private void Initialize() +// { +// foreach (Transform element in _drinkRecipeSpawnLocation) +// { +// Destroy(element.gameObject); +// } +// +// var drinkRecipes = DataManager.Instance.TycoonData.DrinkRecipes; +// foreach (var element in drinkRecipes) +// { +// AddDrinkRecipe(element); +// } +// } +// +// public override void Open(List popupUiList) +// { +// base.Open(popupUiList); +// +// ResetBrewingUi(); +// TycoonEvents.OnBrewingUiOpened?.Invoke(); +// } +// +// public override void Close() +// { +// base.Close(); +// +// _currentBrewing = null; +// ResetBrewingUi(); +// TycoonEvents.OnBrewingUiClosed?.Invoke(); +// } +// +// private void ResetBrewingUi() +// { +// selectedLiquidData = null; +// _recipeName.text = null; +// _drinkImage.enabled = false; +// SetBrewingIngredient(); +// foreach (var element in _brewingIngredientSlotUis) +// { +// element.gameObject.SetActive(false); +// } +// } +// +// public void SetBrewing(Brewing brewing) +// { +// _currentBrewing = brewing; +// ShowDrinkRecipeByCategory(); +// } +// +// private void AddDrinkRecipe(string idx) +// { +// var instance = Instantiate(liquidRecipeSlotUiPrefab, _drinkRecipeSpawnLocation); +// instance.Initialize(idx); +// _drinkRecipeSlotUis.Add(instance); +// } +// +// private void ShowDrinkRecipeByCategory() +// { +// var currentDrinkCategory = _currentBrewing.GetDrinkCategory(); +// foreach (var element in _drinkRecipeSlotUis) +// { +// element.gameObject.SetActive(currentDrinkCategory == element.GetDrinkData().Category); +// } +// } +// +// public void SelectDrinkRecipe(LiquidData liquidData) +// { +// selectedLiquidData = liquidData; +// +// _recipeName.text = selectedLiquidData.Name; +// _drinkImage.sprite = liquidData.Sprite; +// _drinkImage.enabled = true; +// +// var ingredients = selectedLiquidData.GetValidIngredients(); +// for (var i = 0; i < 3; i++) +// { +// if (ingredients.Count > i) +// { +// _brewingIngredientSlotUis[i].SetIngredient(ingredients[i].Idx, ingredients[i].Quantity); +// _brewingIngredientSlotUis[i].gameObject.SetActive(true); +// } +// else +// { +// _brewingIngredientSlotUis[i].gameObject.SetActive(false); +// } +// } +// +// SetBrewingIngredient(); +// } +// +// private void SetBrewingIngredient() +// { +// foreach (var element in _brewingIngredientSlotUis) +// { +// element.SetQuantity(); +// } +// +// CheckConvertButton(); +// } +// +// private void CheckConvertButton() +// { +// if (selectedLiquidData == null || !_currentBrewing.IsEmptyDrink()) +// { +// _convertButton.interactable = false; +// return; +// } +// +// var ingredients = selectedLiquidData.GetValidIngredients(); +// if (ingredients.Count <= 0) +// { +// _convertButton.interactable = false; +// return; +// } +// +// for (var i = 0; i < ingredients.Count; i++) +// { +// if (_brewingIngredientSlotUis[i].GetIsEnough()) continue; +// +// _convertButton.interactable = false; +// return; +// } +// +// _convertButton.interactable = true; +// } +// +// /// +// /// 술을 만들 때 최종 버튼 +// /// +// public void ConvertButton() +// { +// _currentBrewing.SetDrink(selectedLiquidData); +// } +// } +// } \ No newline at end of file diff --git a/Assets/02.Scripts/Ui/Tycoon/LiquidRecipeSlotUi.cs b/Assets/02.Scripts/Ui/Tycoon/LiquidRecipeSlotUi.cs index adbf18286..615875f87 100644 --- a/Assets/02.Scripts/Ui/Tycoon/LiquidRecipeSlotUi.cs +++ b/Assets/02.Scripts/Ui/Tycoon/LiquidRecipeSlotUi.cs @@ -25,13 +25,13 @@ namespace BlueWater.Uis public void Initialize(string idx) { - liquidData = ItemManager.Instance.GetDrinkDataByIdx(idx); + liquidData = ItemManager.Instance.GetLiquidDataByIdx(idx); _image.sprite = liquidData.Sprite; } public void OnButtonClick() { - TycoonEvents.OnDrinkRecipeSelected?.Invoke(liquidData); + //TycoonEvents.OnDrinkRecipeSelected?.Invoke(liquidData); } public LiquidData GetDrinkData() => liquidData; diff --git a/Assets/02.Scripts/Ui/Tycoon/TycoonUiManager.cs b/Assets/02.Scripts/Ui/Tycoon/TycoonUiManager.cs index 3f83b6efc..95bb8d04c 100644 --- a/Assets/02.Scripts/Ui/Tycoon/TycoonUiManager.cs +++ b/Assets/02.Scripts/Ui/Tycoon/TycoonUiManager.cs @@ -27,8 +27,8 @@ namespace BlueWater.Uis [field: SerializeField] public TycoonStageUi TycoonStageUi { get; private set; } - [field: SerializeField] - public BrewingUi BrewingUi { get; private set; } + // [field: SerializeField] + // public BrewingUi BrewingUi { get; private set; } [SerializeField] private Image _fadeImage; @@ -80,7 +80,7 @@ namespace BlueWater.Uis TycoonUpgradeUi = GetComponentInChildren(true); TycoonManagementUi = GetComponentInChildren(true); TycoonStageUi = GetComponentInChildren(true); - BrewingUi = GetComponentInChildren(true); + //BrewingUi = GetComponentInChildren(true); _fadeImage = MainCanvas.transform.Find("FadeImage").GetComponent(); PopupUiList = new List(8); } diff --git a/Assets/Resources/Excel/CocktailDataTable.xlsx b/Assets/Resources/Excel/CocktailDataTable.xlsx index ecc9da36ccd32e4256b86ae3314ee81bbe3f9a9b..064ed236324564b4238990998926a7c66009c309 100644 GIT binary patch delta 7347 zcmZWubyQW`w?1@tNGUCK=qz+0-D$?CZH+U$KIv^p^9n$c)zPRt+ z-~MB-IrjXO#5;8Fe6@(4~foMV22Ok_Q5I~?LM%2_pe{h7GC0NFWe08VH2< zn1Dc6&HxW@7i$j>7mh$T*K&QBJ6r+318qwb{97YgRhw8oU4t=MA-?rBjp%Rrh#ES> zjUI+Ha}IWL1zZGg7-b)1G2|#;DrAf3`@X2}d%j;nt>+XYryubPOHyv z4D)-G(tB-`v$E7QeaQR4@yOAVFXgKAq(KfrsVJS~H{{mSnc>Hc{Obxy6Wrn$81TfWHt z{svv4{7`|Orb2;D0{M_~64lgQ;K#D*ar}qIDfxP^N_&n*xt0)~@Y^|%!oV0*+e)vxRrMNmuEE#N`lRpjH z8I1w?KuXmnm!phapQY4}bfu&-P+a2e#?~I}_OlJKN_ao1IA2*BdE)q{O!2EFS!iJs zfe2-;+$nW_Y3z5gyAIKlSOEx;@5AxIA$7@LWP?0)r6iokk@uBSAb~FTK({cY73alv)bpS|S=d`96q1H8*=% z=pfKBc{p-)VXV)y+{spLD3)xUhALiW@N}T@95*|;k{ZjT>`a=HLZk~9-D>cRcgdI3 z`idXWeCD)RZ&eSL#p`eufs5`}OQ2{9n;IsvPU+SQ|CFbjK@f2DuzhJdyVNt`W7X>Z z)j>>~1>MV57~WtQZ~3t+16!;e{k)(B@oyuHc-)Q~lCy=?bbXg25=_w^Y4x z*GRnxRXF3@@PTQJeMheN9!H)D@+rZX2Ov93ee!Zi|D$n{UMZ3CPu1qG4Ojkr5~Wf< z^vftZ(HZ-T@AsXLmGtm{1o|hnMM|Wmoj!V65kVjd5IVwRt<{}kQX>H6I_j!@T=?x+ z_YkgtEPoP$d0$StJ^fug^x=9I_;Xs`@Uvw~)>d<)8C6askC>oC*r5LfKkgb5(Rnvp zaU3CXFp=w_D2fN{6o!OuyOBX+P7lwxbYd|IwL6 z{b^w*j{7G<{-khe{JfoXo>M>aWXEC+s=Z1HGWU_88)Ca|JTZszv@~&y7Y(|Hmg>;7 zIJWWo>{xam2PygvBHseX>SY_n=*m7Ja<&v{H?)xvswUr@`+_e~?`$ozs!lFnAFJC*2^|k^OQQL@S3pUs#?^F>z^QAR<>>GD z@mF^++?U0xse~IEPJ8sYdL;B3?H9l;cJzq{4asW`f=kj1zDCw*xW{uah`^n~$Vb)4 zxzF)H{_VVN_F@&5rigj0IKwfNFXs-8{(uahnv-Fh2A`S(S;D`PJXRcubaQ~P$Q-dx znor{!dfUB+t@Y(p;|I#mp#_6CDoyU z6p9`q?4G0#SbtUKpEa18zMHThh5gDBK>3A$35|whCS_vH^TA|k;-)R(&eHJT`=Y(k z44ZS(q7O-7V!T(@qBj1sxoM*nLQ5KurJE|rx{EN|g8B1{?R{sUJ)I%*j(>am_T;Cf zS4$43M^jk+Wr_l1Y2K+*?RXo&AmtcQK!OaR_mMCdy ztH{U273zVtwUzrZNvd>e6y(`SDD^_2aqO%VC0xkoZFIDy6?Ej)WBY9fmd%V0S5G9u z)m6i1SJr2#T(-4KXH*(yN*lB**iBboyBPrYuPd50)ntRxBB44Qn)OT^G|}GGzD#gM z2`+Q|Wfk*kgNnD#Zu6K%Q}_VbK$P|B638-}f??g2?yXm=%8g$iSc3bz$27LaV6A5Jn zTb3BnMDJAkGGz@Ea2S=%C^R&>qJVet|4e3)^aoP*2Lk*HllA{G%ZoMm!`4*R&A(cq z;?;eN-ig(e-z|Ry5J@*Q=|&3v^>bSA7_GXs9Fv}0d(V^4L1j9W5VC`z1KV%Y1Nq$V z9DW5rr@wqCDVcd+Aq4}=R12SXy$vA>ZV@)Fx_R%_A*}^`HNOe};^a^E^{DkJWBXY5 zrLPa$S9C5{)ao4snx{g%D~viV=OPiI-Rv|fspY4?=N;r=)?9Y(-#wIzEoi}{f+2to zLdW(@;dc`&g&yfNcis*orqFpA&gI5(Lndsbv?1+)4#fo4Xj-H7EgMy7vL0kB>LUD^ zs>>xPP8JQYny1=9=?kIS(8LYC%Ccz}v1;D-LGp9?9Zl4M^UP{A6)nSj3YBb z0vnwl5t{<->*alpj)>jXr)OEFRk)sCo&yRhO&h!so-_y(9xMnuy0QT>+CMcnQHl73 zg#2O1O2DlqUrzQT zltMnzJb;`lkJ6vK8jjl=fe3d>yAxz@JV>0QXEe1{6TC}CT$&(5XV?izq+SlWzLcHy z5Ys63iQ&~STJUn26`Sqej#gI|Ic&aA>{S`{YnIw3)_%X1&<6A@w%0sdIm}Mx#Ckl2nU-%=r~rS z2hXQ-O_w??4(IW^fc=d~%G{0-9sz0|) z$(+6mMsQy(Er=nBPFhE?oHQ`zxmG_xfo(RyX6#oR<}WBJ^vm@X90h} z1uVpGI1bO~a&|A%I>YZy5+yA+pADFxuJ&JyTi)N__Tw$zo{#drxp0pe5DAqd{Q3cY zx!5vDNS66Z@|lB&19uz&H&_e1gS`?BU+8II$g5(U*OlW4_JU-v^XQ(&h#1pUMOb%K^NLtwR8L^Wa7DDwa+tc~~+ zBFro96@6}vZajNoh*B)UtPRgFnFH^t7=s2Lfs2xYtt+vPldlrt(CCN)zK&bp#%1I; zn`wa^2?^fhBNG~DTFIVi^q&YOn5lDS30gAe5!AE>h9{A@Tzjd+sLkB@g(~=J_BEJ1DdZe$wkwEA9}MvZtA{e}BjrGTRn< zE@SS@JLKOYVOVx#N(mWTHgFfLW; zHjJ%3Czf)9k{Iy_S5NFTN9G>hSy8@X&KVK=H3-_>8(BAVDhfb>?vQ|XA$};S8Sbi; zq7Wv1>6+(=j7w|fpll}F6;o$)D=5(XeG(a z=aJi`?x_@Z+9jsrvqkc6cK&$MuTfx`*ej`?LMJ7^CbJ2JdKb}+je#f6i)8%IW##l` zgG3A7kdg4lacl^iz21sRXodGlwXqFgBP`*r268aXUF7(2=9b#6^G$*`)nxV8%blKl z!xJ2KDIZaue(_GVX+Z!u(%D^bsdy>VFh-d6wbg@*)^U1d4BI*7xDi_w#$lrFY}iaQ zK}T>93%5_GR#-E42(NB4YVeLSs$$b$ElYfQeSt0zj=VMrfi5$Wn0+Gb5U@oj4ZE86 z;-EZ=6C>@XAgIi?QxG{I;@rB{7LR4MU?bDJjXBgek#5r7MwJE%1<;)>It>9#qBpTn zlO({AyoZ3;oFvy&?`DQ6%{FYr->oNwRX10!G_Lu2U8n5uetiue{{xd%*qnQPh}Ea1 zEnK$n&e_uX!fL~9h<2Uio}zS_c<7FZ1Lj@;WimCc$-8P&c@oJphC73{sk7bl%H_RA z)bIc5QN*j0vcNhb{k|$CwyCEw&=*_APBi|@KQ_$Neec_$F!t^dd>MkH!16 z-Ai4kF_koGYq(Z)C$dt=ljDZ(plsR%y&Lhob?!A>gjeg`GOX&r234^@xRUqurR>u@ z1&3=qYb6{P6?n{eY;`r;CBaePum!l=@CxOlWvF3qf~1IuQQeM%eKkuPFDFi z-tqB|d{@athDc2py*M!|eZo_xns;PxNHNPfNxu5xxF&0$Wle=1X-ay-d$|J-%wu8uJ{g}HZ2A-MRmXC-|50UxTQLKk;@&HlPFe@LXV z`|_d1g?`v${UD}A4E*9`PbVDCH=E=zaHVn6HG&<(7o%!j{GMEG!alUMQpy(Nq6J#A zbOBkyQlAOOKgVsZ=;g~{GnaapGx)$>J(fC<{T_9F#_jlJLo^dq_sP z$F0Ow(-jq8Lqk}yMts952&0W9+3dAiI+}b`zUe$29G5l;R^7Y%oU}7>#_HmQY~Jlf zbuml8rJ>CH>=b@i9^ztq?ai#9@DD(>kk`_RqrQQwP@kzp60sXc#5OdlNi2rv#99 z_brL4GpXcOfTQ$DEcH^|h5FEnYypIdqCD#=Jr0r)4R2exdQ@j;5OBOr6}+Y(z-P(r zo_?#G46>ix8y&0D_t-0(B3&QDk~5h|DQ^~DVt*be87_y_NZ9Q@YvW&}hLyZ>cbVV* z^nT(x0-bthf@k%OK_=tn_v5p%K>uu%v7xMlY)>hAz=2BLL4){5?wI}j9M+ecst`>$ z&a=kfj4`bzy~?oFt8ZB^1Zi{j+%OK*MXuc}K?`9AKVNJuy$Ky3M$I{lmgVtQ=#^f# zO{V@Dvw9{pQt<3zD-$no^E&(@)#PNdk4st@YFg2Vd0s(7s0I*4x9RsRJ;0QKKYiI_ zxdH!>ggLSVZxMtovp5~x0AcWpRy}Yn^fuLB91vkS|47)b+Z(o0+B)u-bVUMjq0|aUL0U@)fPNL z+FBd*pwt!OW7JWuca{oZ&E%xSE3y;tAoB*s0Nn?v*+x??`DjEoYhBh*&n-k3mEnD2 zNdKE6EW|`;7g0A&PLLL|#d{@?biwH2V=stWgJ+wX4mhO5)h12)k$_O2nY|)ieZt%? zaxBY$PDv*+qeDL7m0%NPxX7yr`K-57RAxa=2sNry2FqF#x-2uir{#X__kwUVDZS4* zvu}zJ%h;D5KVz=ZTkZqJO~BRtb=X65=>1kHYgwT;NBgTj6GA)je%FWNbQ~MaTy50? zTQF*S9Kb#8FrC6o{-&hLdT*E4SvfVnpS0LoZ1T@n(@qBccyn1czv8bGywjVFJhG0= zy~(Yr;=EX^bEa`zsRc(E5tes zhDZ4$u}Uvy7lSWE zoHI5vC)L~Zs7(xn^m6%IBgM5b@cE(}Hs}M3kWc0|z5QsGNCyNd)+jlu2g2?VHQTXU zv8e^JnVO~zAQmpYJgE?flgzQ^>`VQFaU?hI8NE--Sw}^M2g0UtvU3dqm3wjUeS!Jk zrf*j?kKt>_pTeBYcI*uhwQ`iZqfriAve?|eO7uF2!p>L^Zt1Xt^`pMbZ}#s=1RJ?Z z$ZOWg#{h$ovpdvzG=(&MxYwW88-NhQui8K8eaWDF&wHa1$ez~Sue7(^t%cGD&S@z^ zfY4F4xXqhy>Na(x);vE*Tt$YBQ8jL+n*F*f4W2-lz^cV&CFKEH)$9!ZtauW!@@EKi z6iVds&3e@o++T$>TVoVH0T{yxsgGwS+6FIJm_9kqrp2b-C|F9 zFR+o0BkIZ#JcWF|&RS+_1VhCy)V17Idn&K37u8!a*?>xX3({6e;!zWM=4~8*tYw@& z#(kaz4qFShrkIm{p;L>koQL4cpWeY@!;%|kwS^fgRh`E7DF2%}1Vr{nru@${(5Vv{uBN08=*(S{h#Lx)SQ*>**{h6|MmSf(qV!?&?8I=XcH?w z)xQPZzk&ML(4VZVRDXB;kIU+B@1xa62=yW*fkw08Q~mp>^*1hv99qprP4(}+;cvhi z6?B*FIo01}0Rj>H?R~Tko(HQ{|`VQEz}iEfr|;k1Vubb_9_g2dH)OC CoN_S$ delta 8482 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 diff --git a/Assets/Resources/Excel/LiquidDataTable.xlsx b/Assets/Resources/Excel/LiquidDataTable.xlsx index 9064c6cd5682067c0bca4bd7abbd18877f7e213f..b11135563d54e08c0ecdebee621f15160da1f4b6 100644 GIT binary patch delta 6129 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 delta 8753 zcmZ8{WmH_-(rx1eXx!c1-JRg>Zovsoa5}ha1Hmm2++7;CKp;qPch}(ha?ZJLobTTC zXaA_$d#|xp)vP&Y)qzZuA-iKt9gPyhfvTpd0IG-x1YU8Rp5 zd+1!*KccuL9H*6ih`sgVXK`{Qn%X?q++>sTPpHjP5hkaD4m zV}yiZZDnfeE> z<+v(c3N6IBl<0J=>g?CO>1BZ(ql{a#kI*I@;fXn@r=vgNJKAmHX$gUgS~9*GK+BP) z)N@hRwNBHW2pK{80PPISMz$|NxapRcjY?p_b>m*(7$pNTC)yRlB( z?JN9(!pM_@eioq$x*@BGayBZ@<%13(ib66WoWKyS;k8d(@5mG&A(r>5!~-CLk!xX* zXlnPJ4LKrY@3RDvC{p)oZP*vdr1P&0F#fY^?js&GabkdmBp3l0&^mDR`4k2KkbegN zp#8ZAZ$~ySXEz56XJ-di?~jg^+T%{!yy#tc2SVuWOq5pgNum6P-;*cJz}zmK^2o4= zwo&m>a)pZOQ6Xk*gSQJ(HE_4hUvNcE3L?5@+RrBop1~h9vCo`fA}|HMI=^-ioI%oc zY1+-}Hw({*J|GZ*B4^v^y#r?XOyW3a_|(4I8c%Bcs&rnd8}hDu+r{&1ku*sNYkdz; z;|s7X|Ha%`Nt;(6%`0RvWS^)MT3H%g)mfjJ@uAW7TWnc*qhqW{MPVmz8e+i;yp$5H zuuas+a`deIJ4$_doYr-vhf4jg+7G-gIH~ieKYqyYz(jJef!f-S#erJ8o4wjB)FfZf zZ?ju%SvU84#d>QO92CiYt;@ICu;bE8Nj^8HsffkonZ+d1F{F$A?ENGcPqPS|=UMTl zfv8@OE}QwFnZbg138CygjowlCHLxNvQlr0TGV-D~ zL6cT*JsM4%oN=F&(d%Yl<4ChIfk^jb>VWAWT@?Uz5L!2s(T96=A!G!lmPQyqI|!To!xv z{rzfj*?%5m8fe`4m`E(i zp?U~R!9~=n6nq2N@0+fj`@WL*4)Dzc<)y3aELlru_cTHPLIgvu@2BU{!>;>`CUul` zJ*LtFK>bio!dN6z4+fGh3s+mcuP>ZF_*sv;U#(dDs;Fi|E@K;(_k#3%WA^qtSqE4y zSY607J4%+9RlFyVd1gaH+z4!aZh5wKH81!N%r7$bkQ77;Ehncj7M8}lToblUjt1?1 z4v5V2kg$FKK_5rS|4tj*F$IMcAkyGD z+MA8i#Nwld9(R3TF_`5=7Wj0T#2Y&j*SxxDOf+VfAyslHi$H|#_+$_=K5PE9oh~t3 zN^PKbiWQX@t3(8G6wPtQ%ePs;1yjh=Ylb?`*w`WfIqYqi`OKHa$kcghj3L#Y+Aa|I z1+Y5*2h61)gka zuOZN8QFV;b<{99@Dgl4vfpd*Y}#*n2s3V5_*= z@8RK-`>}$UWKg~l639*bem!p5d7icsgsOBz-Nc2#k&g60X0d|zo^RTXvDTr(GtJ34Ozu>5@5m#YxZ3Yfabo3at6151e=azv zsD9`Wr!3>wFw5uEcs(U0Ry#^kjNQ8x=vZgy2a}zAV~s!C{cJmQvtI&xEuLZANn!Ia z(V*O!cp+jT`w2qu1*SF%j3;u05i`G)rhH3q>NiUDN^85CkOAGLhWg1?m(m=s$7m(~%qY>?# zvY@@mE_HfC=g`xa8{AZ7x35vn@=Or@PC~XJSlxjvL42W(PN(Om%_OM%^)!V7ZgHd3 zFO!ewNA`F(J(~@3JwzrXcH!Jbh^O8jno1&~0l-~U7U~Mt#h;@4_Vy>+-rhXYR-J;y z(Zfs!U7WF>ofC`lBcDY>IA|gEL>#v_9fC~kHVKgWb>g%|kU&F2=;{2f+j5Rm34Q15 zb6mCI&%5`h=Z76U-J;K7cwzepFWmRdHwM4oL^8v{e%LA#ytrtVUGX&idijn5W^D)j7S_84^xTs?3csz!_l-!mcUZc4pVqzqEfk%oq=ih?~_ zLYFsPh&l|a24O(2A;NpbZAcAT;)Ghz^)~pJ8449-4U;u~md@8GGlsheisn*CNZCul zO-W19NtsLGt@(KUq&CPG_fuu_Lim2Nybek73oVy{e?hMY((Z~PU@Z}e1VPV#tgeD< zGheh^xc7R+8kR1SRZGJ_-9U3`p&X^T#wgt#59KT#0GgxJk;o2rKMF1$g6D_A?9nX> z9_DK7brVj_aA}mFK>|~Mku~$i?w9pGvs(+ogs1!n!f;VwB3rtQ%`Cbxwo0a?@6j zLj0IqK*D9@@g+1(lBLI?E+=nV7yLcvfKBgM&fbGC1*{UV@w;zW#-&A#g^k}D>tuYq zNOe|VLxiwurR$KkJPbsXduq4~y8LA20OvLZXCxA{1jVwcH1V{VRuXuO3{~`13?JK9 zy>iEZ9EaW6Z+|H9e*%PiycemD9UXQOERPn5^c+h2DeVs=HK6^0BmxlUUvw>7%g{NC z9Xl|u@$K_7X^;4bOo4V5w?VO8=8|zPi6v$QKG(8cz4Ft!5HJ6sR+Uy9=0xw#(}b53 zGiyR2Drv^F5ieYyc`Wptn*NowVSbJ2+*byqMhazl`^8%5mk)%-CY_)bez}``uhG}&>anL14^<;SmC`;O6^p}B+YA0 z=F)$BU;iv^JyyKuXM%fhclF2!AvINge>{6*pJL_1n`wPHPHz$q7S5sJs}Oz*Va271 zKwYkc9xR78-h3cYQTM2Gfw_)r2npOm2zNZwA1^gWhyB_!a!Xb5BYD;{D9zLcyYHr-v`2`I8JZ>5anI4%V(?F~2GLamUbMq9FUGof*Vf$rqSmQ5j8J@WwaET) zZUuLD@CU63ekDT5<{0Is%${`c4JF;Chxkqzm(Cvl z+USM51;PDrAPyOC8JtC-YT?TK*6BEk%Cn3IMJIKN;%Ez+-+03x2c4ejC9i@dT}NNJShAX&4k88oC+nY#zxeyAkzJA*(VA zH(d1fF(Dh`uIYK(Y<{Jp?)tTGBJDgk=9!$T&d0s#)ra^pN*=7Fh|6w(u)i7;D~2h0TZncUqgW61l%Ws>xjE+)tiNCKoC&8 z3~DZ?>{!Pno-0#bo=3cV7>bylc18-qT%e@{OpJB~6yq=0RY&;hOO`bgk{d%Is9B>G zxQqN6!yLscLgwls2Uy*rw@*qzh^4sf_O75yI}(w-V9+H`^;CiF18x;^Z8}9TkfjUp zlkVyAd_{J?n3M_`!O5!GyjJZ=3Yzp~xJ-A59KvJMV@MT}FUmxld68DA6r+rhkjjqK z78;ljEfJ{~54}qT0RR{x2T!39fyQHq_^`Y29>q}Hy`Fit6KK{pema6zsXyeT5H~fS zsOxZXCU+8HLDLA_XwVlGf01++NtqUh0Ya`5-cdIml1Z8$i6~K zO73z4eSdpgPD9dtWz&)SlG9AP)UHIbV;9n?XVO3p{Pf)Zs&Xl@7*_9`Ko7{w&x*@= zfo>QdzatJWz&uDh7Nn8M3oJ9@4kCspwf0!^2d&e_4$JjX<>3w!lZ33L<1!U%RN+%4 z-s7cGawT82XHQ9TC+LmxW^c}=wt)YZS zK$01LswV;~PBb)?^eFju4PwtYMFF3oHK^scz7L|PP9oN~#?T9F3@p>kAYwX)W73+n zYB2y6wC`&~gI>Q;MK`l^7Nr`SMd=Y~+IOsqEq*D2iXu-Hy^*+w0oQS-hIZpAY86TX)qXrnxH?Bc>DS7{aeyDh3C zYBI^;j8&l$aJSEuue+tO7*}hx2aLvy`o`Zot=U~C6-!dlAr-khFT%N{R2y}DhF%jA zIYT4mW=5mI+9+iaIo4-I9=dcjzV@-Eztmw?#Qy`8`Jauj2S%3d4vpEes-I{GNOSOz zbj5tw;dBFmdSz*=*{G#`qZxibS~7WR5K43-p=_f*ks1&1CM&ufOt;10b0vv< zT8L8o` zsAL+M(7wqwgR)94cbH>v`+~@1b$6NavDU`fHP{=MJ_=*K=z&mrRl%5lH(Sd$CmvOK zg9mz-Y$s-hVIJ;)J-MS>{x}X%-{y-i?wP-_3sazT!?2m@n#gGvEP=m00r_pq?Krx+ zL$I(pC>#+91#dMt66e)OI;Xr&rTd(Zw!6vf{o7Ny^^A#Vjn#xh#&3h6o7)=+ z`;1Qipi$cMtAkwC&bnPLij=c4xWNuduK?Ii&{Qk}d+D-zJ6)SS)CA>yCQmx^N(vRr zwkxd|9p_TQB#MEQ)oM?6w9<{1Hy3TbWl@AD6HeY_)sxC^?}WG+6`Quo_RKP5xa0?K z2BSEsFACod3`EY?s(u{@9%y;#e}Si8oWVC&vL;gZ#8)>(mBco&2{l>F(3|qmn^HUa z0xB?g@4Ab`{t*Yqd-rxj2C^F=u_O_0O`NiCiBr;;(HUEfG?DS%7tB?b0i|Za#zmgs zp}E-Z>SOO|R}PUWVxfxlXozEWYYbNE^4ryDb7Te<%;ehG~&(KOJx_nim#rlLKd{C zS?%&#KDbU&Nxewi2O*0~fWQdu^I;U}>9H{(#7BLO32{3b=LpKG#Yx(I@Y*sP1=-Gb zMo$Z*#8U~zsC_C-|B&0q6IK0VN|lKWUv)9Fx8RsnIK3R^7NWY!M>ad^4sW+-^KFpv z=$8lhFhXbtSaBuwtDdpg=|zRbt=fUL4Ha|NN1=1`S3nF*FFQ-#4^CzMPL=-Xh6eTJ zMlNPV6xCn6_a8mq^NU*UFtV3hP|A?xc4mXx#O+a~xP7^37jr<;`AS1h|7-nxN-X}=Zxc5Hv0=GP(P>>1YOx1t$b%2gz2bD~r_lR(W4Ri<^zfrB9xBrmz(9m@V}2UA zqrQxIwGuRy>>ClWU>t*{auBEP=i`cU3%G#1vp&=NB7O>}tNz5k1+>D31)&%5qOzJp zk%p^H=CTxS7RFyHnb@lEQfZB1g?@b!Yv@n<8uZoNocWkW$qjOpw%yy~rZsD?ub7b6 zrv$$4XL~+fY4)yjJSs0=MGxe{yU$a7OW8Xx!Di&2c^=c0R1XKtoItv-VqOU--frqW zI~@(5jaOJ;C-}wYp;7dq2nN+qg7m*;v8%!lOn@tE)+C4gW+&WVJ+|?=46F^UQ40L)`3^! zsc5-%(6S7mx6JRVF9Lli(n)s7qKm-l2bdv`K2)8uv6XY3R7<+ixtZrei5zJ0_M=K| z@Sym01}4*lHW(l=QdpMpR@Qo|^`zX&FKPFfoz&ckx)DpM<(=bu&f2iI0>t`ki5D=) zlD=*FWvMi$vqj%wOkJ<#lAc|IS*Or4xxE@gKJ5s`IiEjuKZB$qc_E_Y+Z|KEX9@A2 zc22RpguMNFlskR|8xa;?>r0Yhp)Ka7Z-Go+Zf}2nx#&Up9>Oa$1O&gNE?5ZU0)EsB zrA9EBTat`q z7u59QopLK)s)G0`YH*LUgs=8`?a!3yxNmVU?N0}1j%R&y*n;U>Uwy8hMYk?J-*Cx; z`VQ-NFQktt7J{Bnzo%_Y6_uQ~6HJo2n@Trq*b&2w~t+#hz5R-17vN z?ZzLoD-L!}Me5|%&R{v{)Uy304rm#jA@$i5^e=~YLu*~HD$423Z#XzIh>6xY+KV#jt`Y8WkL z^+AL{~#$|h9%B3KKbL|p_kR` zZS=ML#4GBAY;-pOt~h&|*xBoQ#!JsN@mNhSFxHN_%@qayogUVUj7`q$Vs_<`>~aUE@8 zElWv7siGu=DhG57SwW+O61ZLwXufX0K`a=@2<(I-hgV6C0d!Y)kKcQRX}3`L;Y0Q8 z#)@BvzGHXbU$=<4b%ZPqBZA|&-rqdd6q>B8y3LLre$I3Xiu6}K4Mhr? zg@30*tP|6SX?z-;MS#|uxR547bG=^kd#X`JZbg{uTsYH5q@v=k`TH8X^!7<64stJN z<3?lMP3Ftu${rqbOi`syTtln1Q0z(hG5UU|jD|tdmI(VDSCX6Ya}?x;5Ou<6IQdkuc;c=8mh%p_X&gBvMN zg_jQ}tkikFP^xJS@R!Kv5J4ydK;g8h4OUfwK!jPVtp)CRXF$-P@qTc8*#ou0Dj^l@ zHbcO6q^LZ#=U2+rVo(5QX^j`vrX}ll=&p=c-1of{)9kH$Dp7)pfg@9pfZg-O@q}@f z3I%mmclDjHg-FG=&cv~+g7uxE?mHW$#u+73Og49Qr)Uk`k`RKx$am$HIa2UFUCr-sU*6QSMJtNYXE%h zp+7bGuZpoc6^#sRUZDe7 zRQ+3XWWn}plHj8*ad|U{DlIY_+J(Hf1P+R z|2W}5ae~z;v5EiHeE%TsqN&lV-_?y0h)hKa@|E;EgKgaTa z7cM2ZhX5C>O^HtYZ+-&+82{G?&`JXiqNF1JH>v;t^#5{*qzCs<5~3mlkO4!`06-Pv HU)KKz3|uRm diff --git a/Assets/Resources/JSON/CocktailDataTable.json b/Assets/Resources/JSON/CocktailDataTable.json index 45bccc106..f8bb3d7db 100644 --- a/Assets/Resources/JSON/CocktailDataTable.json +++ b/Assets/Resources/JSON/CocktailDataTable.json @@ -1,152 +1,242 @@ [ { - "Idx": "Cocktail300", - "Name": "달빛 샘물", + "Idx": "Cocktail000", + "Name": "쓰레기", "RatioRange": 0, - "IngredientIdx1": "Liquid100", - "IngredientRatio1": 100, + "IngredientIdx1": "", + "IngredientAmount1": 0, "IngredientIdx2": "", - "IngredientRatio2": 0, + "IngredientAmount2": 0, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail301", - "Name": "망령 맥주", + "Idx": "Cocktail001", + "Name": "칵테일A", "RatioRange": 0, - "IngredientIdx1": "Liquid101", - "IngredientRatio1": 100, + "IngredientIdx1": "LiquidA", + "IngredientAmount1": 400, "IngredientIdx2": "", - "IngredientRatio2": 0, + "IngredientAmount2": 0, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail302", - "Name": "검은 수염", + "Idx": "Cocktail002", + "Name": "칵테일B", "RatioRange": 0, - "IngredientIdx1": "Liquid102", - "IngredientRatio1": 100, + "IngredientIdx1": "LiquidB", + "IngredientAmount1": 400, "IngredientIdx2": "", - "IngredientRatio2": 0, + "IngredientAmount2": 0, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail303", - "Name": "용암 맥주", + "Idx": "Cocktail003", + "Name": "칵테일C", "RatioRange": 0, - "IngredientIdx1": "Liquid103", - "IngredientRatio1": 100, + "IngredientIdx1": "LiquidC", + "IngredientAmount1": 400, "IngredientIdx2": "", - "IngredientRatio2": 0, + "IngredientAmount2": 0, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail304", - "Name": "죽음의 이슬", + "Idx": "Cocktail004", + "Name": "칵테일D", "RatioRange": 0, - "IngredientIdx1": "Liquid104", - "IngredientRatio1": 100, + "IngredientIdx1": "LiquidD", + "IngredientAmount1": 400, "IngredientIdx2": "", - "IngredientRatio2": 0, + "IngredientAmount2": 0, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail305", - "Name": "얼음", + "Idx": "Cocktail005", + "Name": "칵테일E", "RatioRange": 0, - "IngredientIdx1": "Garnish200", - "IngredientRatio1": 100, + "IngredientIdx1": "LiquidE", + "IngredientAmount1": 400, "IngredientIdx2": "", - "IngredientRatio2": 0, + "IngredientAmount2": 0, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail306", - "Name": "얼어붙은 망령", + "Idx": "Cocktail006", + "Name": "칵테일AC", + "RatioRange": 5, + "IngredientIdx1": "LiquidA", + "IngredientAmount1": 200, + "IngredientIdx2": "LiquidC", + "IngredientAmount2": 200, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail007", + "Name": "칵테일BD", + "RatioRange": 5, + "IngredientIdx1": "LiquidB", + "IngredientAmount1": 200, + "IngredientIdx2": "LiquidD", + "IngredientAmount2": 200, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail008", + "Name": "칵테일CD", + "RatioRange": 5, + "IngredientIdx1": "LiquidC", + "IngredientAmount1": 200, + "IngredientIdx2": "LiquidD", + "IngredientAmount2": 200, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail009", + "Name": "칵테일ABE", "RatioRange": 10, - "IngredientIdx1": "Liquid101", - "IngredientRatio1": 80, - "IngredientIdx2": "Garnish200", - "IngredientRatio2": 20, - "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientIdx1": "LiquidA", + "IngredientAmount1": 100, + "IngredientIdx2": "LiquidB", + "IngredientAmount2": 100, + "IngredientIdx3": "LiquidE", + "IngredientAmount3": 200, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail307", - "Name": "슬라임 풀", - "RatioRange": 25, - "IngredientIdx1": "Liquid100", - "IngredientRatio1": 50, - "IngredientIdx2": "Garnish200", - "IngredientRatio2": 50, - "IngredientIdx3": "", - "IngredientRatio3": 0, - "IngredientIdx4": "", - "IngredientRatio4": 0, - "IngredientIdx5": "", - "IngredientRatio5": 0 - }, - { - "Idx": "Cocktail308", - "Name": "불탄 수염", + "Idx": "Cocktail010", + "Name": "칵테일CDE", "RatioRange": 10, - "IngredientIdx1": "Liquid102", - "IngredientRatio1": 20, - "IngredientIdx2": "Liquid103", - "IngredientRatio2": 80, - "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientIdx1": "LiquidC", + "IngredientAmount1": 100, + "IngredientIdx2": "LiquidD", + "IngredientAmount2": 100, + "IngredientIdx3": "LiquidE", + "IngredientAmount3": 200, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 }, { - "Idx": "Cocktail309", - "Name": "라바 고스트", - "RatioRange": 15, - "IngredientIdx1": "Liquid101", - "IngredientRatio1": 50, - "IngredientIdx2": "Liquid103", - "IngredientRatio2": 50, + "Idx": "Cocktail011", + "Name": "칵테일B1", + "RatioRange": 10, + "IngredientIdx1": "LiquidB", + "IngredientAmount1": 320, + "IngredientIdx2": "Garnish1", + "IngredientAmount2": 80, "IngredientIdx3": "", - "IngredientRatio3": 0, + "IngredientAmount3": 0, "IngredientIdx4": "", - "IngredientRatio4": 0, + "IngredientAmount4": 0, "IngredientIdx5": "", - "IngredientRatio5": 0 + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail012", + "Name": "칵테일D1", + "RatioRange": 10, + "IngredientIdx1": "LiquidD", + "IngredientAmount1": 320, + "IngredientIdx2": "Garnish1", + "IngredientAmount2": 80, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail013", + "Name": "칵테일A2", + "RatioRange": 5, + "IngredientIdx1": "LiquidA", + "IngredientAmount1": 360, + "IngredientIdx2": "Garnish2", + "IngredientAmount2": 40, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail014", + "Name": "칵테일C2", + "RatioRange": 5, + "IngredientIdx1": "LiquidC", + "IngredientAmount1": 360, + "IngredientIdx2": "Garnish2", + "IngredientAmount2": 40, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 + }, + { + "Idx": "Cocktail015", + "Name": "칵테일E2", + "RatioRange": 5, + "IngredientIdx1": "LiquidE", + "IngredientAmount1": 360, + "IngredientIdx2": "Garnish2", + "IngredientAmount2": 40, + "IngredientIdx3": "", + "IngredientAmount3": 0, + "IngredientIdx4": "", + "IngredientAmount4": 0, + "IngredientIdx5": "", + "IngredientAmount5": 0 } ] \ No newline at end of file diff --git a/Assets/Resources/JSON/LiquidDataTable.json b/Assets/Resources/JSON/LiquidDataTable.json index af0700a2f..36a689e8b 100644 --- a/Assets/Resources/JSON/LiquidDataTable.json +++ b/Assets/Resources/JSON/LiquidDataTable.json @@ -1,104 +1,37 @@ [ { - "Idx": "Liquid100", - "Name": "달빛 샘물 원액", - "Category": 1, - "Amount": 99999, - "AlcoholVolume": 0, - "Temperature": 10, - "BitterSweet": 0, - "Scent": 0, - "IngredientIdx1": 0, - "IngredientQuantity1": 0, - "IngredientIdx2": 0, - "IngredientQuantity2": 0, - "IngredientIdx3": 0, - "IngredientQuantity3": 0, - "Price": 100 + "Idx": "LiquidA", + "Name": "술 원액A", + "Amount": 99999 }, { - "Idx": "Liquid101", - "Name": "망령 맥주 원액", - "Category": 1, - "Amount": 2000, - "AlcoholVolume": 7, - "Temperature": -20, - "BitterSweet": -10, - "Scent": 0, - "IngredientIdx1": "Ingredient00", - "IngredientQuantity1": 2, - "IngredientIdx2": 0, - "IngredientQuantity2": 0, - "IngredientIdx3": 0, - "IngredientQuantity3": 0, - "Price": 100 + "Idx": "LiquidB", + "Name": "술 원액B", + "Amount": 2000 }, { - "Idx": "Liquid102", - "Name": "검은 수염 럼 원액", - "Category": 1, - "Amount": 1200, - "AlcoholVolume": 20, - "Temperature": -30, - "BitterSweet": -15, - "Scent": 0, - "IngredientIdx1": "Ingredient01", - "IngredientQuantity1": 3, - "IngredientIdx2": "Ingredient00", - "IngredientQuantity2": 1, - "IngredientIdx3": 0, - "IngredientQuantity3": 0, - "Price": 100 + "Idx": "LiquidC", + "Name": "술 원액C", + "Amount": 2000 }, { - "Idx": "Liquid103", - "Name": "용암 맥주 원액", - "Category": 1, - "Amount": 2800, - "AlcoholVolume": 6, - "Temperature": 20, - "BitterSweet": 10, - "Scent": 0, - "IngredientIdx1": "Ingredient02", - "IngredientQuantity1": 1, - "IngredientIdx2": "Ingredient03", - "IngredientQuantity2": 3, - "IngredientIdx3": 0, - "IngredientQuantity3": 0, - "Price": 100 + "Idx": "LiquidD", + "Name": "술 원액D", + "Amount": 2000 }, { - "Idx": "Liquid104", - "Name": "죽음의 이슬 원액", - "Category": 1, - "Amount": 800, - "AlcoholVolume": 30, - "Temperature": -25, - "BitterSweet": 20, - "Scent": 0, - "IngredientIdx1": "Ingredient04", - "IngredientQuantity1": 2, - "IngredientIdx2": 0, - "IngredientQuantity2": 0, - "IngredientIdx3": 0, - "IngredientQuantity3": 0, - "Price": 100 + "Idx": "LiquidE", + "Name": "술 원액E", + "Amount": 2000 }, { - "Idx": "Garnish200", - "Name": "얼음 슬라임의 조각", - "Category": 2, - "Amount": 1000, - "AlcoholVolume": 0, - "Temperature": -20, - "BitterSweet": 0, - "Scent": 0, - "IngredientIdx1": "Ingredient05", - "IngredientQuantity1": 2, - "IngredientIdx2": 0, - "IngredientQuantity2": 0, - "IngredientIdx3": 0, - "IngredientQuantity3": 0, - "Price": 100 + "Idx": "Garnish1", + "Name": "가나쉬1", + "Amount": 2000 + }, + { + "Idx": "Garnish2", + "Name": "가나쉬2", + "Amount": 2000 } ] \ No newline at end of file