diff --git a/Assets/01.Scenes/01.Tycoon.unity b/Assets/01.Scenes/01.Tycoon.unity index 022f2482d..3a8bd1736 100644 --- a/Assets/01.Scenes/01.Tycoon.unity +++ b/Assets/01.Scenes/01.Tycoon.unity @@ -2803,71 +2803,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 2798544366308408093, guid: 9ce588004bafc1e4e9617fdaa2d77c8d, type: 3} m_PrefabInstance: {fileID: 5626406452199475265} m_PrefabAsset: {fileID: 0} ---- !u!1 &214974222 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 214974223} - - component: {fileID: 214974225} - - component: {fileID: 214974224} - m_Layer: 0 - m_Name: Renderer4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &214974223 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 214974222} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1434161267} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &214974224 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 214974222} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: deeb12332c062954093c24a3fab10b83, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!222 &214974225 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 214974222} - m_CullTransparentMesh: 1 --- !u!1 &215611423 GameObject: m_ObjectHideFlags: 0 @@ -10511,8 +10446,8 @@ MonoBehaviour: _pushPower: 50 _liquidObject: {fileID: -7612237390858616641, guid: 231c2f369e2946745a955eb49243702b, type: 3} _garnishObject: {fileID: 5803694563079548352, guid: f051d09e1e3043d4285ae8e0ff4c4f12, type: 3} - _liquidsPerSecond: 80 - _maxLiquidCount: 400 + _liquidsPerSecond: 100 + _maxLiquidCount: 300 _colorLerpSpeed: 0.5 _colorIntensity: 2 _objectPoolCount: 1000 @@ -11456,71 +11391,6 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 2 m_VerticalFit: 0 ---- !u!1 &1092164769 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1092164770} - - component: {fileID: 1092164772} - - component: {fileID: 1092164771} - m_Layer: 0 - m_Name: Renderer3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1092164770 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1092164769} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1434161267} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1092164771 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1092164769} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: deeb12332c062954093c24a3fab10b83, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!222 &1092164772 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1092164769} - m_CullTransparentMesh: 1 --- !u!1 &1101945424 GameObject: m_ObjectHideFlags: 0 @@ -15005,71 +14875,6 @@ Transform: - {fileID: 181975870} m_Father: {fileID: 1665075868} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1370164786 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1370164787} - - component: {fileID: 1370164789} - - component: {fileID: 1370164788} - m_Layer: 0 - m_Name: Renderer1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1370164787 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1370164786} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1434161267} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1370164788 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1370164786} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: deeb12332c062954093c24a3fab10b83, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!222 &1370164789 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1370164786} - m_CullTransparentMesh: 1 --- !u!1 &1378992846 GameObject: m_ObjectHideFlags: 0 @@ -16258,20 +16063,16 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1434161266} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -0} - m_LocalScale: {x: 1.2, y: 1.2, z: 1.2} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 1 m_Children: - {fileID: 1544446791} - - {fileID: 1370164787} - - {fileID: 1613389274} - - {fileID: 1092164770} - - {fileID: 214974223} m_Father: {fileID: 1737345938} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -132, y: 37} + m_AnchoredPosition: {x: -51, y: 21} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1434161268 @@ -16294,7 +16095,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - skeletonDataAsset: {fileID: 11400000, guid: 308d2d58ac0aafc4b8a391c601b0d398, type: 2} + skeletonDataAsset: {fileID: 11400000, guid: f92d39c8c0ff1414790be3559bcfb1b0, type: 2} additiveMaterial: {fileID: 2100000, guid: 2e8245019faeb8c43b75f9ca3ac8ee34, type: 2} multiplyMaterial: {fileID: 2100000, guid: e74a1f8978a7da348a721508d0d58834, type: 2} screenMaterial: {fileID: 2100000, guid: bab24c479f34eec45be6ea8595891569, type: 2} @@ -16317,10 +16118,6 @@ MonoBehaviour: allowMultipleCanvasRenderers: 1 canvasRenderers: - {fileID: 1544446793} - - {fileID: 1370164789} - - {fileID: 1613389276} - - {fileID: 1092164772} - - {fileID: 214974225} separatorSlotNames: [] enableSeparatorSlots: 0 separatorParts: [] @@ -18362,71 +18159,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1604407184} m_CullTransparentMesh: 1 ---- !u!1 &1613389273 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1613389274} - - component: {fileID: 1613389276} - - component: {fileID: 1613389275} - m_Layer: 0 - m_Name: Renderer2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &1613389274 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1613389273} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1434161267} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1613389275 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1613389273} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: deeb12332c062954093c24a3fab10b83, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] ---- !u!222 &1613389276 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1613389273} - m_CullTransparentMesh: 1 --- !u!1 &1617241974 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/CompleteCleaning.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/IsCompletedMission.cs similarity index 62% rename from Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/CompleteCleaning.cs rename to Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/IsCompletedMission.cs index d5e1e70e7..53d0655c7 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/CompleteCleaning.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/IsCompletedMission.cs @@ -4,7 +4,7 @@ using BlueWater.Npcs.Crews; namespace BlueWater.BehaviorTrees.Actions { [TaskCategory("Custom/Npc/Crew")] - public class CompleteMission : Action + public class IsCompletedMission : Action { private Crew _crew; @@ -15,12 +15,7 @@ namespace BlueWater.BehaviorTrees.Actions public override TaskStatus OnUpdate() { - if (_crew.CrewInteraction == null) - { - return TaskStatus.Success; - } - - return TaskStatus.Running; + return _crew.IsCompletedMission() ? TaskStatus.Success : TaskStatus.Running; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/CompleteCleaning.cs.meta b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/IsCompletedMission.cs.meta similarity index 100% rename from Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/CompleteCleaning.cs.meta rename to Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/IsCompletedMission.cs.meta diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/MakingCocktail.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/MakingCocktail.cs index cf668cba8..2f68ef605 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/MakingCocktail.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/MakingCocktail.cs @@ -1,5 +1,5 @@ using BehaviorDesigner.Runtime.Tasks; -using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Bartender; namespace BlueWater.BehaviorTrees.Actions { diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/Refind.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/Refind.cs index a3972d51c..d1590edfe 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/Refind.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Action/Refind.cs @@ -1,6 +1,7 @@ using BehaviorDesigner.Runtime.Tasks; -using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Server; using BlueWater.Tycoons; +using UnityEngine; namespace BlueWater.BehaviorTrees.Actions { @@ -8,7 +9,6 @@ namespace BlueWater.BehaviorTrees.Actions public class Refind : Action { private ServerCrew _serverCrew; - private ServingTable _emptyServingTable; public override void OnAwake() { @@ -19,31 +19,22 @@ namespace BlueWater.BehaviorTrees.Actions { var tycoonManager = TycoonManager.Instance; var orderedCustomer = tycoonManager.CustomerController.FindCustomerMatchingItem(_serverCrew.CurrentPickupItem); - - if (orderedCustomer != null) + if (orderedCustomer) { - orderedCustomer.IsMatchedServer = true; - _serverCrew.OrderedCustomer = orderedCustomer; - _serverCrew.CrewInteraction = orderedCustomer; + _serverCrew.OnMission(orderedCustomer, orderedCustomer); return TaskStatus.Success; } - if (_emptyServingTable == null) + var emptyServingTable = tycoonManager.ServingTableController.FindEmptyServingTable(); + if (emptyServingTable) { - _emptyServingTable = tycoonManager.ServingTableController.FindEmptyServingTable(); - _serverCrew.CrewInteraction = _emptyServingTable; - return TaskStatus.Running; + _serverCrew.OnMission(emptyServingTable); + _serverCrew.AIMovement.Move(emptyServingTable.CenterTransform.position); + return TaskStatus.Success; } - _serverCrew.AIMovement.Move(_emptyServingTable.CenterTransform.position); - - if (!_serverCrew.CanInteractionPosition()) return TaskStatus.Running; - - _serverCrew.AIMovement.StopMove(); - _serverCrew.CrewInteraction.InteractionCrew(_serverCrew); - - return TaskStatus.Success; + return TaskStatus.Running; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/CheckOrderedCocktail.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/CheckOrderedCocktail.cs index eea596faf..0edf90c7d 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/CheckOrderedCocktail.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/CheckOrderedCocktail.cs @@ -1,5 +1,5 @@ using BehaviorDesigner.Runtime.Tasks; -using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Bartender; namespace BlueWater.BehaviorTrees.Actions { diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/OnMission.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/OnMission.cs index 50db60022..66f475681 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/OnMission.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/OnMission.cs @@ -33,9 +33,15 @@ namespace BlueWater.BehaviorTrees.Actions if (!_crew.CanInteractionPosition()) return TaskStatus.Running; _crew.AIMovement.StopMove(); - _crew.CrewInteraction.InteractionCrew(_crew); + + if (_crew.CrewInteraction != null) + { + _crew.CrewInteraction.InteractionCrew(_crew); + return TaskStatus.Success; + } - return TaskStatus.Success; + _crew.ResetMission(); + return TaskStatus.Failure; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/Serving.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/Serving.cs index aadcf9700..e9ed1d550 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/Serving.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/Serving.cs @@ -1,5 +1,6 @@ using BehaviorDesigner.Runtime.Tasks; -using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Server; +using UnityEngine; namespace BlueWater.BehaviorTrees.Actions { @@ -15,7 +16,11 @@ namespace BlueWater.BehaviorTrees.Actions public override void OnStart() { - _serverCrew.CrewInteraction = _serverCrew.OrderedCustomer; + if (_serverCrew.OrderedCustomer && _serverCrew.OrderedCustomer.CanInteractionCrew()) + { + _serverCrew.OrderedCustomer.IsMatchedServer = true; + } + if (_serverCrew.CrewInteraction != null) { _serverCrew.AIMovement.Move(_serverCrew.CrewInteraction.CenterTransform.position); @@ -27,17 +32,22 @@ namespace BlueWater.BehaviorTrees.Actions if (!_serverCrew.CrewInteraction.CanInteractionCrew()) { _serverCrew.AIMovement.StopMove(); - _serverCrew.OrderedCustomer = null; - _serverCrew.CrewInteraction = null; + _serverCrew.CanNotServing(); return TaskStatus.Failure; } if (!_serverCrew.CanInteractionPosition()) return TaskStatus.Running; _serverCrew.AIMovement.StopMove(); - _serverCrew.CrewInteraction.InteractionCrew(_serverCrew); - return TaskStatus.Success; + if (_serverCrew.CrewInteraction != null) + { + _serverCrew.CrewInteraction.InteractionCrew(_serverCrew); + return TaskStatus.Success; + } + + _serverCrew.CanNotServing(); + return TaskStatus.Failure; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/TakeServingItem.cs b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/TakeServingItem.cs index a60ac2323..1114ec6ae 100644 --- a/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/TakeServingItem.cs +++ b/Assets/02.Scripts/BehaviorTree/Npc/Crew/Conditional/TakeServingItem.cs @@ -1,5 +1,5 @@ using BehaviorDesigner.Runtime.Tasks; -using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Server; namespace BlueWater.BehaviorTrees.Actions { @@ -25,7 +25,7 @@ namespace BlueWater.BehaviorTrees.Actions { if (_serverCrew.CurrentPickupItem != null) return TaskStatus.Success; - if (_serverCrew.CrewInteraction == null || !_serverCrew.CrewInteraction.CanInteractionCrew()) + if (_serverCrew.CrewInteraction == null || !_serverCrew.CrewInteraction.CanInteractionCrew() || !_serverCrew.OrderedCustomer.CanInteractionCrew()) { _serverCrew.AIMovement.StopMove(); _serverCrew.ResetMission(); @@ -33,11 +33,17 @@ namespace BlueWater.BehaviorTrees.Actions } if (!_serverCrew.CanInteractionPosition()) return TaskStatus.Running; - - _serverCrew.AIMovement.StopMove(); - _serverCrew.CrewInteraction.InteractionCrew(_serverCrew); - return TaskStatus.Success; + _serverCrew.AIMovement.StopMove(); + + if (_serverCrew.CrewInteraction != null && _serverCrew.OrderedCustomer.CanInteractionCrew()) + { + _serverCrew.CrewInteraction.InteractionCrew(_serverCrew); + return TaskStatus.Success; + } + + _serverCrew.ResetMission(); + return TaskStatus.Failure; } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Character/Npc/Crew/Bartender.meta b/Assets/02.Scripts/Character/Npc/Crew/Bartender.meta new file mode 100644 index 000000000..ba2dccd3e --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Bartender.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 35b0111a0732856408248d570b2d6501 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02.Scripts/Character/Npc/Crew/BartenderCrew.cs b/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs similarity index 51% rename from Assets/02.Scripts/Character/Npc/Crew/BartenderCrew.cs rename to Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs index 2e90f08e6..feed04da3 100644 --- a/Assets/02.Scripts/Character/Npc/Crew/BartenderCrew.cs +++ b/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs @@ -1,18 +1,48 @@ +using BlueWater.Interfaces; using BlueWater.Npcs.Customers; using BlueWater.Tycoons; -namespace BlueWater.Npcs.Crews +namespace BlueWater.Npcs.Crews.Bartender { - public class BartenderCrew: Crew + public class BartenderCrew : Crew { public BartenderTable MyBartenderTable { get; private set; } public Customer OrderedCustomer { get; set; } + public bool IsMakingCocktail { get; private set; } + + public StateMachineController StateMachineController { get; private set; } + public IStateMachine IdleState { get; private set; } + public IStateMachine MakingCocktailState { get; private set; } + + protected override void Update() + { + StateMachineController.UpdateState(this); + base.Update(); + } + + public override void Initialize() + { + IdleState = new IdleState(); + MakingCocktailState = new MakingCocktailState(); + + StateMachineController = new StateMachineController(this, IdleState); + + base.Initialize(); + } public override void ResetMission() { - base.ResetMission(); - + CrewInteraction = null; + IsOnMission = false; + BalloonUi.DiscardItem(); + OrderedCustomer = null; + IsMakingCocktail = false; + } + + public override bool IsCompletedMission() + { + return !OrderedCustomer && !IsMakingCocktail; } public void SetBartenderTable(BartenderTable bartenderTable) => MyBartenderTable = bartenderTable; diff --git a/Assets/02.Scripts/Character/Npc/Crew/BartenderCrew.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/BartenderCrew.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Bartender/BartenderCrew.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/State.meta b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State.meta rename to Assets/02.Scripts/Character/Npc/Crew/Bartender/State.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/IdleState.cs b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/IdleState.cs new file mode 100644 index 000000000..e32b4ed90 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/IdleState.cs @@ -0,0 +1,25 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Bartender +{ + public class IdleState : IStateMachine + { + public virtual void EnterState(BartenderCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.Idle, true); + } + + public virtual void UpdateState(BartenderCrew character) + { + if (character.IsMakingCocktail) + { + character.StateMachineController.TransitionToState(character.MakingCocktailState, character); + } + } + + public virtual void ExitState(BartenderCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/IdleState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/IdleState.cs.meta new file mode 100644 index 000000000..1d6c42806 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/IdleState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e9c0ddd65aa3624458b71816e3981c58 diff --git a/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/MakingCocktailState.cs b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/MakingCocktailState.cs new file mode 100644 index 000000000..876a7af5a --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/MakingCocktailState.cs @@ -0,0 +1,24 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Bartender +{ + public class MakingCocktailState : IStateMachine + { + public void EnterState(BartenderCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.MakingCocktail, true); + } + + public void UpdateState(BartenderCrew character) + { + if (character.IsMakingCocktail) return; + + character.StateMachineController.TransitionToState(character.IdleState, character); + } + + public void ExitState(BartenderCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/MakingCocktailState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Bartender/State/MakingCocktailState.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State/MakingCocktailState.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Bartender/State/MakingCocktailState.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner.meta new file mode 100644 index 000000000..ba9115c9a --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c56d6556876306c4d909c6933df23d82 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs new file mode 100644 index 000000000..fff7ea851 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs @@ -0,0 +1,52 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Cleaner +{ + public class CleanerCrew : Crew + { + public bool IsCleaningFloor { get; private set; } + public bool IsCleaningTable { get; private set; } + + public StateMachineController StateMachineController { get; private set; } + public IStateMachine IdleState { get; private set; } + public IStateMachine WalkingState { get; private set; } + public IStateMachine CleaningFloorState { get; private set; } + public IStateMachine CleaningTableState { get; private set; } + + protected override void Update() + { + StateMachineController.UpdateState(this); + base.Update(); + } + + public override void Initialize() + { + IdleState = new IdleState(); + WalkingState = new WalkingState(); + CleaningFloorState = new CleaningFloorState(); + CleaningTableState = new CleaningTableState(); + + StateMachineController = new StateMachineController(this, IdleState); + + base.Initialize(); + } + + public override void ResetMission() + { + CrewInteraction = null; + IsOnMission = false; + BalloonUi.DiscardItem(); + + IsCleaningFloor = false; + IsCleaningTable = false; + } + + public override bool IsCompletedMission() + { + return CrewInteraction == null && !IsCleaningFloor && !IsCleaningTable; + } + + public void SetIsCleaningFloor(bool value) => IsCleaningFloor = value; + public void SetIsCleaningTable(bool value) => IsCleaningTable = value; + } +} \ No newline at end of file diff --git a/Assets/02.Scripts/Character/Npc/Crew/CleanerCrew.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/CleanerCrew.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State.meta new file mode 100644 index 000000000..aeb23793a --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b76597d3681048e4b94d459ab2538a5f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningFloorState.cs b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningFloorState.cs new file mode 100644 index 000000000..49ae03cad --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningFloorState.cs @@ -0,0 +1,31 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Cleaner +{ + public class CleaningFloorState : IStateMachine + { + public void EnterState(CleanerCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.CleaningFloor, true); + } + + public void UpdateState(CleanerCrew character) + { + if (character.IsCleaningFloor) return; + + if (character.IsMoving) + { + character.StateMachineController.TransitionToState(character.WalkingState, character); + } + else if (!character.IsMoving) + { + character.StateMachineController.TransitionToState(character.IdleState, character); + } + } + + public void ExitState(CleanerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/CleaningFloorState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningFloorState.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State/CleaningFloorState.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningFloorState.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningTableState.cs b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningTableState.cs new file mode 100644 index 000000000..650f1c5e9 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningTableState.cs @@ -0,0 +1,31 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Cleaner +{ + public class CleaningTableState : IStateMachine + { + public void EnterState(CleanerCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.CleaningTable, true); + } + + public void UpdateState(CleanerCrew character) + { + if (character.IsCleaningTable) return; + + if (character.IsMoving) + { + character.StateMachineController.TransitionToState(character.WalkingState, character); + } + else if (!character.IsMoving) + { + character.StateMachineController.TransitionToState(character.IdleState, character); + } + } + + public void ExitState(CleanerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/CleaningTableState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningTableState.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State/CleaningTableState.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/CleaningTableState.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/IdleState.cs b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/IdleState.cs new file mode 100644 index 000000000..37b0ca0f9 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/IdleState.cs @@ -0,0 +1,34 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Cleaner +{ + public class IdleState : IStateMachine + { + public void EnterState(CleanerCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.Idle, true); + } + + public void UpdateState(CleanerCrew character) + { + if (character.IsCleaningFloor) + { + character.StateMachineController.TransitionToState(character.CleaningFloorState, character); + } + else if (character.IsCleaningTable) + { + character.StateMachineController.TransitionToState(character.CleaningTableState, character); + } + + if (character.IsMoving) + { + character.StateMachineController.TransitionToState(character.WalkingState, character); + } + } + + public void ExitState(CleanerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/IdleState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/IdleState.cs.meta new file mode 100644 index 000000000..acff9a77c --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/IdleState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 25dad99d4102ee1488ddc67be46b0aa7 diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/WalkingState.cs b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/WalkingState.cs new file mode 100644 index 000000000..d83feb46d --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/WalkingState.cs @@ -0,0 +1,33 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Cleaner +{ + public class WalkingState : IStateMachine + { + public void EnterState(CleanerCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.Walk, true); + } + + public void UpdateState(CleanerCrew character) + { + if (!character.IsMoving) + { + character.StateMachineController.TransitionToState(character.IdleState, character); + } + else if (character.IsCleaningFloor) + { + character.StateMachineController.TransitionToState(character.CleaningFloorState, character); + } + else if (character.IsCleaningTable) + { + character.StateMachineController.TransitionToState(character.CleaningTableState, character); + } + } + + public void ExitState(CleanerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/WalkingState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/WalkingState.cs.meta new file mode 100644 index 000000000..c752ba289 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Cleaner/State/WalkingState.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 18d2e384fa17d9145a22b1810557daa7 diff --git a/Assets/02.Scripts/Character/Npc/Crew/CleanerCrew.cs b/Assets/02.Scripts/Character/Npc/Crew/CleanerCrew.cs deleted file mode 100644 index 4832baa3c..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/CleanerCrew.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace BlueWater.Npcs.Crews -{ - public class CleanerCrew: Crew - { - - } -} \ No newline at end of file diff --git a/Assets/02.Scripts/Character/Npc/Crew/Crew.cs b/Assets/02.Scripts/Character/Npc/Crew/Crew.cs index bbd26516c..fd317438e 100644 --- a/Assets/02.Scripts/Character/Npc/Crew/Crew.cs +++ b/Assets/02.Scripts/Character/Npc/Crew/Crew.cs @@ -21,7 +21,7 @@ namespace BlueWater.Npcs.Crews public const string MakingCocktail = "BeerMaker"; } - public class Crew : MonoBehaviour + public abstract class Crew : MonoBehaviour { // Variables @@ -76,25 +76,11 @@ namespace BlueWater.Npcs.Crews } } - public ICrewInteraction CrewInteraction { get; set; } - public bool IsOnMission { get; set; } - public bool IsCleaningFloor { get; set; } - public bool IsCleaningTable { get; set; } - public bool IsServing { get; set; } - public bool IsMakingCocktail { get; set; } + public ICrewInteraction CrewInteraction { get; protected set; } + public bool IsOnMission { get; protected set; } private IAstarAI _astarAi; private Transform _spawnTransform; - - // State - public IState CurrentState { get; private set; } - public IState IdleState { get; private set; } - public IState WalkingState { get; private set; } - public IState ServingIdleState { get; private set; } - public IState ServingState { get; private set; } - public IState CleaningFloorState { get; private set; } - public IState CleaningTableState { get; private set; } - public IState MakingCocktailState { get; private set; } #endregion @@ -109,7 +95,7 @@ namespace BlueWater.Npcs.Crews protected virtual void Update() { - CurrentState.UpdateState(this); + //CurrentAnimationState.UpdateState(this); HandleMovement(); FlipVisualLook(); } @@ -141,17 +127,6 @@ namespace BlueWater.Npcs.Crews public virtual void Initialize() { - IdleState = new IdleState(); - WalkingState = new WalkingState(); - ServingIdleState = new ServingIdleState(); - ServingState = new ServingState(); - CleaningFloorState = new CleaningFloorState(); - CleaningTableState = new CleaningTableState(); - MakingCocktailState = new MakingCocktailState(); - - CurrentState = IdleState; - CurrentState.EnterState(this); - BehaviorTree.EnableBehavior(); } @@ -194,29 +169,15 @@ namespace BlueWater.Npcs.Crews BarkTrigger.OnUse(); } - public void TransitionToState(IState newState) - { - CurrentState.ExitState(this); - CurrentState = newState; - CurrentState.EnterState(this); - } - public virtual void OnMission(ICrewInteraction crewInteraction) { CrewInteraction = crewInteraction; - CrewInteraction.OnInteractionCompleted += InteractionCompleted; + CrewInteraction.OnInteractionCompleted += ResetMission; IsOnMission = true; } - public virtual void ResetMission() - { - CrewInteraction = null; - IsOnMission = false; - IsCleaningFloor = false; - IsCleaningTable = false; - IsServing = false; - IsMakingCocktail = false; - } + public abstract void ResetMission(); + public abstract bool IsCompletedMission(); public virtual bool CanInteractionPosition() { @@ -227,13 +188,6 @@ namespace BlueWater.Npcs.Crews CrewInteraction.InteractionRadius; } - protected virtual void InteractionCompleted() - { - CrewInteraction.OnInteractionCompleted -= InteractionCompleted; - - ResetMission(); - } - #endregion } } \ No newline at end of file diff --git a/Assets/02.Scripts/Character/Npc/Crew/Server.meta b/Assets/02.Scripts/Character/Npc/Crew/Server.meta new file mode 100644 index 000000000..7f208d74d --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Server.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aad9c20e25429d14f977b9e2ad515bde +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs b/Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs new file mode 100644 index 000000000..4247978a3 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs @@ -0,0 +1,71 @@ +using BlueWater.Interfaces; +using BlueWater.Npcs.Customers; + +namespace BlueWater.Npcs.Crews.Server +{ + public class ServerCrew : Crew + { + public Customer OrderedCustomer { get; private set; } + public IPickup CurrentPickupItem { get; private set; } + public bool IsServing { get; private set; } + + public StateMachineController StateMachineController { get; private set; } + public IStateMachine IdleState { get; private set; } + public IStateMachine WalkingState { get; private set; } + public IStateMachine ServingState { get; private set; } + + protected override void Update() + { + StateMachineController.UpdateState(this); + base.Update(); + } + + public override void Initialize() + { + IdleState = new IdleState(); + WalkingState = new WalkingState(); + ServingState = new ServingState(); + + StateMachineController = new StateMachineController(this, IdleState); + + base.Initialize(); + } + + public override void ResetMission() + { + CrewInteraction = null; + IsOnMission = false; + BalloonUi.DiscardItem(); + + OrderedCustomer = null; + CurrentPickupItem = null; + IsServing = false; + } + + public void CanNotServing() + { + CrewInteraction = null; + OrderedCustomer = null; + } + + public override bool IsCompletedMission() + { + return CrewInteraction == null && !OrderedCustomer && CurrentPickupItem == null && !IsServing; + } + + public void OnMission(ICrewInteraction crewInteraction, Customer orderedCustomer) + { + base.OnMission(crewInteraction); + OrderedCustomer = orderedCustomer; + } + + public void TakeFromServingTable(IPickup pickupItem, Customer orderedCustomer) + { + CurrentPickupItem = pickupItem; + OrderedCustomer = orderedCustomer; + CrewInteraction = OrderedCustomer; + BalloonUi.SetItemImage(CurrentPickupItem); + IsServing = true; + } + } +} \ No newline at end of file diff --git a/Assets/02.Scripts/Character/Npc/Crew/ServerCrew.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/ServerCrew.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Server/State.meta b/Assets/02.Scripts/Character/Npc/Crew/Server/State.meta new file mode 100644 index 000000000..7e17997f8 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Server/State.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 21ecb96e6b51502459f165c484d1a11f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/02.Scripts/Character/Npc/Crew/Server/State/IdleState.cs b/Assets/02.Scripts/Character/Npc/Crew/Server/State/IdleState.cs new file mode 100644 index 000000000..7bcb2b980 --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Server/State/IdleState.cs @@ -0,0 +1,33 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Server +{ + public class IdleState : IStateMachine + { + private bool _previousIsServing; + + public virtual void EnterState(ServerCrew character) + { + _previousIsServing = character.IsServing; + character.SpineController.PlayAnimation(_previousIsServing ? CrewSpineAnimation.ServingIdle : CrewSpineAnimation.Idle, true); + } + + public virtual void UpdateState(ServerCrew character) + { + if (character.IsMoving) + { + character.StateMachineController.TransitionToState(character.WalkingState, character); + } + + if (character.IsServing == _previousIsServing) return; + + _previousIsServing = character.IsServing; + character.SpineController.PlayAnimation(_previousIsServing ? CrewSpineAnimation.ServingIdle : CrewSpineAnimation.Idle, true); + } + + public virtual void ExitState(ServerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/IdleState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Server/State/IdleState.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State/IdleState.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Server/State/IdleState.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Server/State/ServingState.cs b/Assets/02.Scripts/Character/Npc/Crew/Server/State/ServingState.cs new file mode 100644 index 000000000..ba13d1e8e --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Server/State/ServingState.cs @@ -0,0 +1,32 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Server +{ + public class ServingState : IStateMachine + { + public void EnterState(ServerCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.Serving, true); + } + + public void UpdateState(ServerCrew character) + { + if (character.IsMoving) + { + if (!character.IsServing) + { + character.StateMachineController.TransitionToState(character.WalkingState, character); + } + } + else if (!character.IsMoving) + { + character.StateMachineController.TransitionToState(character.IdleState, character); + } + } + + public void ExitState(ServerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/ServingState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Server/State/ServingState.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State/ServingState.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Server/State/ServingState.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/Server/State/WalkingState.cs b/Assets/02.Scripts/Character/Npc/Crew/Server/State/WalkingState.cs new file mode 100644 index 000000000..d7e50408e --- /dev/null +++ b/Assets/02.Scripts/Character/Npc/Crew/Server/State/WalkingState.cs @@ -0,0 +1,29 @@ +using BlueWater.Interfaces; + +namespace BlueWater.Npcs.Crews.Server +{ + public class WalkingState : IStateMachine + { + public void EnterState(ServerCrew character) + { + character.SpineController.PlayAnimation(CrewSpineAnimation.Walk, true); + } + + public void UpdateState(ServerCrew character) + { + if (!character.IsMoving) + { + character.StateMachineController.TransitionToState(character.IdleState, character); + } + else if (character.IsServing) + { + character.StateMachineController.TransitionToState(character.ServingState, character); + } + } + + public void ExitState(ServerCrew character) + { + + } + } +} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/WalkingState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/Server/State/WalkingState.cs.meta similarity index 100% rename from Assets/02.Scripts/Character/Npc/Crew/State/WalkingState.cs.meta rename to Assets/02.Scripts/Character/Npc/Crew/Server/State/WalkingState.cs.meta diff --git a/Assets/02.Scripts/Character/Npc/Crew/ServerCrew.cs b/Assets/02.Scripts/Character/Npc/Crew/ServerCrew.cs deleted file mode 100644 index e46dc574d..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/ServerCrew.cs +++ /dev/null @@ -1,19 +0,0 @@ -using BlueWater.Interfaces; -using BlueWater.Npcs.Customers; - -namespace BlueWater.Npcs.Crews -{ - public class ServerCrew: Crew - { - public Customer OrderedCustomer { get; set; } - public IPickup CurrentPickupItem { get; set; } - - public override void ResetMission() - { - base.ResetMission(); - - OrderedCustomer = null; - CurrentPickupItem = null; - } - } -} \ No newline at end of file diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/CleaningFloorState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/CleaningFloorState.cs deleted file mode 100644 index 40567efda..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/CleaningFloorState.cs +++ /dev/null @@ -1,31 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class CleaningFloorState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.CleaningFloor, true); - } - - public void UpdateState(Crew character) - { - if (character.IsCleaningFloor) return; - - if (character.IsMoving) - { - character.TransitionToState(character.WalkingState); - } - else if (!character.IsMoving) - { - character.TransitionToState(character.IdleState); - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/CleaningTableState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/CleaningTableState.cs deleted file mode 100644 index 542ed958e..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/CleaningTableState.cs +++ /dev/null @@ -1,31 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class CleaningTableState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.CleaningTable, true); - } - - public void UpdateState(Crew character) - { - if (character.IsCleaningTable) return; - - if (character.IsMoving) - { - character.TransitionToState(character.WalkingState); - } - else if (!character.IsMoving) - { - character.TransitionToState(character.IdleState); - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/IdleState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/IdleState.cs deleted file mode 100644 index c6322a924..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/IdleState.cs +++ /dev/null @@ -1,41 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class IdleState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.Idle, true); - } - - public void UpdateState(Crew character) - { - if (character.IsMoving) - { - character.TransitionToState(character.WalkingState); - } - else if (character.IsCleaningFloor) - { - character.TransitionToState(character.CleaningFloorState); - } - else if (character.IsCleaningTable) - { - character.TransitionToState(character.CleaningTableState); - } - else if (character.IsServing) - { - character.TransitionToState(character.ServingState); - } - else if (character.IsMakingCocktail) - { - character.TransitionToState(character.MakingCocktailState); - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/MakingCocktailState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/MakingCocktailState.cs deleted file mode 100644 index c283e787b..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/MakingCocktailState.cs +++ /dev/null @@ -1,31 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class MakingCocktailState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.MakingCocktail, true); - } - - public void UpdateState(Crew character) - { - if (character.IsMakingCocktail) return; - - if (character.IsMoving) - { - character.TransitionToState(character.WalkingState); - } - else if (!character.IsMoving) - { - character.TransitionToState(character.IdleState); - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/ServingIdleState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/ServingIdleState.cs deleted file mode 100644 index bf73ebef4..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/ServingIdleState.cs +++ /dev/null @@ -1,39 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class ServingIdleState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.ServingIdle, true); - } - - public void UpdateState(Crew character) - { - if (character.IsMoving) - { - if (character.IsServing) - { - character.TransitionToState(character.WalkingState); - } - else - { - character.TransitionToState(character.ServingState); - } - } - else if (!character.IsMoving) - { - if (!character.IsServing) - { - character.TransitionToState(character.IdleState); - } - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/ServingIdleState.cs.meta b/Assets/02.Scripts/Character/Npc/Crew/State/ServingIdleState.cs.meta deleted file mode 100644 index cf477252b..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/ServingIdleState.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: afd7c038ff62b644f98d20d220bb13a8 diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/ServingState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/ServingState.cs deleted file mode 100644 index 0e01fea71..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/ServingState.cs +++ /dev/null @@ -1,39 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class ServingState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.Serving, true); - } - - public void UpdateState(Crew character) - { - if (character.IsMoving) - { - if (!character.IsServing) - { - character.TransitionToState(character.WalkingState); - } - } - else if (!character.IsMoving) - { - if (character.IsServing) - { - character.TransitionToState(character.ServingIdleState); - } - else - { - character.TransitionToState(character.IdleState); - } - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Crew/State/WalkingState.cs b/Assets/02.Scripts/Character/Npc/Crew/State/WalkingState.cs deleted file mode 100644 index 2e56d2b2f..000000000 --- a/Assets/02.Scripts/Character/Npc/Crew/State/WalkingState.cs +++ /dev/null @@ -1,41 +0,0 @@ -using BlueWater.Interfaces; - -namespace BlueWater.Npcs.Crews -{ - public class WalkingState : IState - { - public void EnterState(Crew character) - { - character.SpineController.PlayAnimation(CrewSpineAnimation.Walk, true); - } - - public void UpdateState(Crew character) - { - if (!character.IsMoving) - { - character.TransitionToState(character.IdleState); - } - else if (character.IsCleaningFloor) - { - character.TransitionToState(character.CleaningFloorState); - } - else if (character.IsCleaningTable) - { - character.TransitionToState(character.CleaningTableState); - } - else if (character.IsServing) - { - character.TransitionToState(character.ServingState); - } - else if (character.IsMakingCocktail) - { - character.TransitionToState(character.MakingCocktailState); - } - } - - public void ExitState(Crew character) - { - - } - } -} diff --git a/Assets/02.Scripts/Character/Npc/Customer/Customer.cs b/Assets/02.Scripts/Character/Npc/Customer/Customer.cs index 167799127..0a16ec50c 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/Customer.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/Customer.cs @@ -4,6 +4,7 @@ using BlueWater.Enemies; using BlueWater.Interfaces; using BlueWater.Items; using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Server; using BlueWater.Players; using BlueWater.Tycoons; using BlueWater.Uis; @@ -144,12 +145,12 @@ namespace BlueWater.Npcs.Customers private bool _isQuitting; // State - public IState CurrentState { get; private set; } - public IState IdleState { get; private set; } - public IState WalkingState { get; private set; } - public IState HappyState { get; private set; } - public IState UpsetState { get; private set; } - public IState VomitState { get; private set; } + public StateMachineController StateMachineController { get; private set; } + public IStateMachine IdleState { get; private set; } + public IStateMachine WalkingState { get; private set; } + public IStateMachine HappyState { get; private set; } + public IStateMachine UpsetState { get; private set; } + public IStateMachine VomitState { get; private set; } public event Action OnInteractionCompleted; @@ -171,7 +172,7 @@ namespace BlueWater.Npcs.Customers private void Update() { - CurrentState.UpdateState(this); + StateMachineController.UpdateState(this); HandleMovement(); FlipVisualLook(); } @@ -213,14 +214,13 @@ namespace BlueWater.Npcs.Customers CurrentLevelData = levelData; _spawnTransform = spawnTransform; - IdleState = new IdleState(); - WalkingState = new WalkingState(); - HappyState = new HappyState(); - UpsetState = new UpsetState(); - VomitState = new VomitState(); - - CurrentState = IdleState; - CurrentState.EnterState(this); + IdleState = new IdleStateMachine(); + WalkingState = new WalkingStateMachine(); + HappyState = new HappyStateMachine(); + UpsetState = new UpsetStateMachine(); + VomitState = new VomitStateMachine(); + + StateMachineController = new StateMachineController(this, IdleState); BehaviorTree.EnableBehavior(); } @@ -273,10 +273,9 @@ namespace BlueWater.Npcs.Customers public void ServedItem(CocktailData cocktailData) { - OrderedCocktailData = cocktailData; - CurrentTableSeat.SetFood(OrderedCocktailData.Sprite); + CurrentTableSeat.SetFood(); BalloonUi.ReceiveItem(cocktailData); - TransitionToState(IsOrderedSucceed ? HappyState : UpsetState); + StateMachineController.TransitionToState(IsOrderedSucceed ? HappyState : UpsetState, this); } public void Interaction() @@ -368,13 +367,6 @@ namespace BlueWater.Npcs.Customers _customerInteractionType = CustomerInteractionType.None; } - public void TransitionToState(IState newState) - { - CurrentState.ExitState(this); - CurrentState = newState; - CurrentState.EnterState(this); - } - public void Bark(string conversation, BarkOrder barkOrder = BarkOrder.Random) { if (string.IsNullOrEmpty(conversation)) return; @@ -420,7 +412,7 @@ namespace BlueWater.Npcs.Customers public void Vomit() { AIMovement.StopMove(); - TransitionToState(VomitState); + StateMachineController.TransitionToState(VomitState, this); } public void InstanceVomit() @@ -428,7 +420,7 @@ namespace BlueWater.Npcs.Customers var spawnPosition = transform.position + new Vector3(0f, 0f, 0.1f); Instantiate(_vomiting, spawnPosition, _vomiting.transform.rotation); IsVomited = true; - TransitionToState(IdleState); + StateMachineController.TransitionToState(IdleState, this); } public void CheckOut() @@ -460,7 +452,7 @@ namespace BlueWater.Npcs.Customers CurrentTableSeat = null; } AIMovement.Move(_spawnTransform.position); - TransitionToState(WalkingState); + StateMachineController.TransitionToState(WalkingState, this); } #endregion diff --git a/Assets/02.Scripts/Character/Npc/Customer/State/HappyState.cs b/Assets/02.Scripts/Character/Npc/Customer/State/HappyState.cs index 1fdb16a85..af72b48b4 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/State/HappyState.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/State/HappyState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Npcs.Customers { - public class HappyState : IState + public class HappyStateMachine : IStateMachine { public void EnterState(Customer character) { @@ -13,7 +13,7 @@ namespace BlueWater.Npcs.Customers { if (character.IsMoving) { - character.TransitionToState(character.WalkingState); + character.StateMachineController.TransitionToState(character.WalkingState, character); } } diff --git a/Assets/02.Scripts/Character/Npc/Customer/State/IdleState.cs b/Assets/02.Scripts/Character/Npc/Customer/State/IdleState.cs index 2525d10b3..600f77998 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/State/IdleState.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/State/IdleState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Npcs.Customers { - public class IdleState : IState + public class IdleStateMachine : IStateMachine { public void EnterState(Customer character) { @@ -25,7 +25,7 @@ namespace BlueWater.Npcs.Customers { if (character.IsMoving) { - character.TransitionToState(character.WalkingState); + character.StateMachineController.TransitionToState(character.WalkingState, character); } } diff --git a/Assets/02.Scripts/Character/Npc/Customer/State/UpsetState.cs b/Assets/02.Scripts/Character/Npc/Customer/State/UpsetState.cs index 8d58a4a5d..4464f089c 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/State/UpsetState.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/State/UpsetState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Npcs.Customers { - public class UpsetState : IState + public class UpsetStateMachine : IStateMachine { public void EnterState(Customer character) { @@ -13,7 +13,7 @@ namespace BlueWater.Npcs.Customers { if (character.IsMoving) { - character.TransitionToState(character.WalkingState); + character.StateMachineController.TransitionToState(character.WalkingState, character); } } diff --git a/Assets/02.Scripts/Character/Npc/Customer/State/VomitState.cs b/Assets/02.Scripts/Character/Npc/Customer/State/VomitState.cs index 91a71ca09..8e6507fae 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/State/VomitState.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/State/VomitState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Npcs.Customers { - public class VomitState : IState + public class VomitStateMachine : IStateMachine { private bool _isVomiting; diff --git a/Assets/02.Scripts/Character/Npc/Customer/State/WalkingState.cs b/Assets/02.Scripts/Character/Npc/Customer/State/WalkingState.cs index 0461d7ad4..d141346e4 100644 --- a/Assets/02.Scripts/Character/Npc/Customer/State/WalkingState.cs +++ b/Assets/02.Scripts/Character/Npc/Customer/State/WalkingState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Npcs.Customers { - public class WalkingState : IState + public class WalkingStateMachine : IStateMachine { public void EnterState(Customer character) { @@ -25,7 +25,7 @@ namespace BlueWater.Npcs.Customers { if (!character.IsMoving) { - character.TransitionToState(character.IdleState); + character.StateMachineController.TransitionToState(character.IdleState, character); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningFloorState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningFloorState.cs index 159760253..e0b23b388 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningFloorState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningFloorState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class CleaningFloorState : IState + public class CleaningFloorStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -16,14 +16,14 @@ namespace BlueWater.Players.Tycoons if (character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingState - : character.WalkingState); + ? character.ServingStateMachine + : character.WalkingStateMachine); } else if (!character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingIdleState - : character.IdleState); + ? character.ServingIdleStateMachine + : character.IdleStateMachine); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningTableState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningTableState.cs index cf4c4c399..7f11cb834 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningTableState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/CleaningTableState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class CleaningTableState : IState + public class CleaningTableStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -16,14 +16,14 @@ namespace BlueWater.Players.Tycoons if (character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingState - : character.WalkingState); + ? character.ServingStateMachine + : character.WalkingStateMachine); } else if (!character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingIdleState - : character.IdleState); + ? character.ServingIdleStateMachine + : character.IdleStateMachine); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/IdleState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/IdleState.cs index 98be959f1..9050f9118 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/IdleState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/IdleState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class IdleState : IState + public class IdleStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -14,26 +14,26 @@ namespace BlueWater.Players.Tycoons if (character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingState - : character.WalkingState); + ? character.ServingStateMachine + : character.WalkingStateMachine); } else if (character.IsMakingCocktail) { - character.TransitionToState(character.MakingCocktailState); + character.TransitionToState(character.MakingCocktailStateMachine); } else if (character.IsCleaningFloor) { - character.TransitionToState(character.CleaningFloorState); + character.TransitionToState(character.CleaningFloorStateMachine); } else if (character.IsCleaningTable) { - character.TransitionToState(character.CleaningTableState); + character.TransitionToState(character.CleaningTableStateMachine); } else if (!character.TycoonMovement.IsMoving) { if (character.TycoonPickupHandler.IsPickedUpCocktail()) { - character.TransitionToState(character.ServingIdleState); + character.TransitionToState(character.ServingIdleStateMachine); } } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/MakingCocktailState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/MakingCocktailState.cs index e5ae1e37c..e0e345b43 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/MakingCocktailState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/MakingCocktailState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class MakingCocktailState : IState + public class MakingCocktailStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -16,14 +16,14 @@ namespace BlueWater.Players.Tycoons if (character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingState - : character.WalkingState); + ? character.ServingStateMachine + : character.WalkingStateMachine); } else if (!character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingIdleState - : character.IdleState); + ? character.ServingIdleStateMachine + : character.IdleStateMachine); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/ServingIdleState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/ServingIdleState.cs index fa282e924..7c02f3216 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/ServingIdleState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/ServingIdleState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class ServingIdleState : IState + public class ServingIdleStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -14,26 +14,26 @@ namespace BlueWater.Players.Tycoons if (character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingState - : character.WalkingState); + ? character.ServingStateMachine + : character.WalkingStateMachine); } else if (character.IsMakingCocktail) { - character.TransitionToState(character.MakingCocktailState); + character.TransitionToState(character.MakingCocktailStateMachine); } else if (character.IsCleaningFloor) { - character.TransitionToState(character.CleaningFloorState); + character.TransitionToState(character.CleaningFloorStateMachine); } else if (character.IsCleaningTable) { - character.TransitionToState(character.CleaningTableState); + character.TransitionToState(character.CleaningTableStateMachine); } else if (!character.TycoonMovement.IsMoving) { if (!character.TycoonPickupHandler.IsPickedUpCocktail()) { - character.TransitionToState(character.IdleState); + character.TransitionToState(character.IdleStateMachine); } } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/ServingState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/ServingState.cs index 491cf87f9..6e3d3097d 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/ServingState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/ServingState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class ServingState : IState + public class ServingStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -15,26 +15,26 @@ namespace BlueWater.Players.Tycoons { if (!character.TycoonPickupHandler.IsPickedUpCocktail()) { - character.TransitionToState(character.WalkingState); + character.TransitionToState(character.WalkingStateMachine); } } else if (character.IsMakingCocktail) { - character.TransitionToState(character.MakingCocktailState); + character.TransitionToState(character.MakingCocktailStateMachine); } else if (character.IsCleaningFloor) { - character.TransitionToState(character.CleaningFloorState); + character.TransitionToState(character.CleaningFloorStateMachine); } else if (character.IsCleaningTable) { - character.TransitionToState(character.CleaningTableState); + character.TransitionToState(character.CleaningTableStateMachine); } else if (!character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingIdleState - : character.IdleState); + ? character.ServingIdleStateMachine + : character.IdleStateMachine); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/State/WalkingState.cs b/Assets/02.Scripts/Character/Player/Tycoon/State/WalkingState.cs index cc94823cd..b18035998 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/State/WalkingState.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/State/WalkingState.cs @@ -2,7 +2,7 @@ using BlueWater.Interfaces; namespace BlueWater.Players.Tycoons { - public class WalkingState : IState + public class WalkingStateMachine : IStateMachine { public void EnterState(TycoonPlayer character) { @@ -15,26 +15,26 @@ namespace BlueWater.Players.Tycoons { if (character.TycoonPickupHandler.IsPickedUpCocktail()) { - character.TransitionToState(character.ServingState); + character.TransitionToState(character.ServingStateMachine); } } else if (character.IsMakingCocktail) { - character.TransitionToState(character.MakingCocktailState); + character.TransitionToState(character.MakingCocktailStateMachine); } else if (character.IsCleaningFloor) { - character.TransitionToState(character.CleaningFloorState); + character.TransitionToState(character.CleaningFloorStateMachine); } else if (character.IsCleaningTable) { - character.TransitionToState(character.CleaningTableState); + character.TransitionToState(character.CleaningTableStateMachine); } else if (!character.TycoonMovement.IsMoving) { character.TransitionToState(character.TycoonPickupHandler.IsPickedUpCocktail() - ? character.ServingIdleState - : character.IdleState); + ? character.ServingIdleStateMachine + : character.IdleStateMachine); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/TycoonInput.cs b/Assets/02.Scripts/Character/Player/Tycoon/TycoonInput.cs index c827e60e8..660ec53c0 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/TycoonInput.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/TycoonInput.cs @@ -106,7 +106,9 @@ namespace BlueWater.Players.Tycoons { if (context.performed) { - DataManager.Instance.TestData(); + EventManager.InvokeCreateServerCrew(); + EventManager.InvokeCreateCleanerCrew(); + EventManager.InvokeCreateBartenderCrew(); } } diff --git a/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs b/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs index 1cba2f875..2520f8f04 100644 --- a/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs +++ b/Assets/02.Scripts/Character/Player/Tycoon/TycoonPlayer.cs @@ -63,14 +63,14 @@ namespace BlueWater.Players.Tycoons public bool IsMakingCocktail { get; set; } // State - public IState CurrentState { get; private set; } - public IState IdleState { get; private set; } - public IState WalkingState { get; private set; } - public IState ServingIdleState { get; private set; } - public IState ServingState { get; private set; } - public IState CleaningFloorState { get; private set; } - public IState CleaningTableState { get; private set; } - public IState MakingCocktailState { get; private set; } + public IStateMachine CurrentStateMachine { get; private set; } + public IStateMachine IdleStateMachine { get; private set; } + public IStateMachine WalkingStateMachine { get; private set; } + public IStateMachine ServingIdleStateMachine { get; private set; } + public IStateMachine ServingStateMachine { get; private set; } + public IStateMachine CleaningFloorStateMachine { get; private set; } + public IStateMachine CleaningTableStateMachine { get; private set; } + public IStateMachine MakingCocktailStateMachine { get; private set; } #endregion @@ -98,21 +98,21 @@ namespace BlueWater.Players.Tycoons EventManager.OnCocktailDiscarded += balloonUi.DiscardItem; EventManager.OnCocktailServedToCustomer += balloonUi.GiveItem; - IdleState = new IdleState(); - WalkingState = new WalkingState(); - ServingIdleState = new ServingIdleState(); - ServingState = new ServingState(); - CleaningFloorState = new CleaningFloorState(); - CleaningTableState = new CleaningTableState(); - MakingCocktailState = new MakingCocktailState(); + IdleStateMachine = new IdleStateMachine(); + WalkingStateMachine = new WalkingStateMachine(); + ServingIdleStateMachine = new ServingIdleStateMachine(); + ServingStateMachine = new ServingStateMachine(); + CleaningFloorStateMachine = new CleaningFloorStateMachine(); + CleaningTableStateMachine = new CleaningTableStateMachine(); + MakingCocktailStateMachine = new MakingCocktailStateMachine(); - CurrentState = IdleState; - CurrentState.EnterState(this); + CurrentStateMachine = IdleStateMachine; + CurrentStateMachine.EnterState(this); } private void Update() { - CurrentState.UpdateState(this); + CurrentStateMachine.UpdateState(this); } private void OnDestroy() @@ -163,11 +163,11 @@ namespace BlueWater.Players.Tycoons // VisualFeedbackManager.Instance.SetBaseTimeScale(0f); } - public void TransitionToState(IState newState) + public void TransitionToState(IStateMachine newStateMachine) { - CurrentState.ExitState(this); - CurrentState = newState; - CurrentState.EnterState(this); + CurrentStateMachine.ExitState(this); + CurrentStateMachine = newStateMachine; + CurrentStateMachine.EnterState(this); } #endregion diff --git a/Assets/02.Scripts/DataManager.cs b/Assets/02.Scripts/DataManager.cs index c1ea8e01e..3f007550b 100644 --- a/Assets/02.Scripts/DataManager.cs +++ b/Assets/02.Scripts/DataManager.cs @@ -28,10 +28,5 @@ namespace BlueWater [field: Title("타이쿤 데이터")] [field: SerializeField] public TycoonData TycoonData { get; private set; } - - public void TestData() - { - - } } } \ No newline at end of file diff --git a/Assets/02.Scripts/EventManager.cs b/Assets/02.Scripts/EventManager.cs index d45f1be53..7c1c06b20 100644 --- a/Assets/02.Scripts/EventManager.cs +++ b/Assets/02.Scripts/EventManager.cs @@ -1,6 +1,8 @@ using System; using BlueWater.Items; -using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Bartender; +using BlueWater.Npcs.Crews.Cleaner; +using BlueWater.Npcs.Crews.Server; using BlueWater.Npcs.Customers; using UnityEngine; diff --git a/Assets/02.Scripts/Interface/IAnimationState.cs b/Assets/02.Scripts/Interface/IStateMachine.cs similarity index 74% rename from Assets/02.Scripts/Interface/IAnimationState.cs rename to Assets/02.Scripts/Interface/IStateMachine.cs index ec8293184..f1b6cb9b5 100644 --- a/Assets/02.Scripts/Interface/IAnimationState.cs +++ b/Assets/02.Scripts/Interface/IStateMachine.cs @@ -2,7 +2,7 @@ namespace BlueWater.Interfaces { - public interface IState where T : MonoBehaviour + public interface IStateMachine where T : MonoBehaviour { void EnterState(T character); void UpdateState(T character); diff --git a/Assets/02.Scripts/Interface/IAnimationState.cs.meta b/Assets/02.Scripts/Interface/IStateMachine.cs.meta similarity index 100% rename from Assets/02.Scripts/Interface/IAnimationState.cs.meta rename to Assets/02.Scripts/Interface/IStateMachine.cs.meta diff --git a/Assets/02.Scripts/Item/Cocktail/CocktailData.cs b/Assets/02.Scripts/Item/Cocktail/CocktailData.cs index 9079fdf67..07012d940 100644 --- a/Assets/02.Scripts/Item/Cocktail/CocktailData.cs +++ b/Assets/02.Scripts/Item/Cocktail/CocktailData.cs @@ -23,72 +23,50 @@ namespace BlueWater.Items public string IngredientIdx1 { get; set; } [field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientAmount1 { get; set; } + public int IngredientRatio1 { get; set; } [field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx2 { get; set; } [field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientAmount2 { get; set; } + public int IngredientRatio2 { get; set; } [field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx3 { get; set; } [field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientAmount3 { get; set; } + public int IngredientRatio3 { get; set; } [field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx4 { get; set; } [field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientAmount4 { get; set; } + public int IngredientRatio4 { get; set; } [field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")] public string IngredientIdx5 { get; set; } [field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")] - public int IngredientAmount5 { get; set; } + public int IngredientRatio5 { get; set; } [BoxGroup("직접 추가하는 영역")] [field: SerializeField, BoxGroup("직접 추가하는 영역")] public Sprite Sprite { get; set; } + + [field: SerializeField] + public List ValidIngredients { get; set; } = new(5); - public List GetValidIngredients() + public List GetValidIngredients(int liquidMaxAmount) { var ingredients = new List(5); - 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)); + if (!string.IsNullOrEmpty(IngredientIdx1)) ingredients.Add(new CocktailIngredient(IngredientIdx1, IngredientRatio1, (int)(liquidMaxAmount * (IngredientRatio1 / 100f)))); + if (!string.IsNullOrEmpty(IngredientIdx2)) ingredients.Add(new CocktailIngredient(IngredientIdx2, IngredientRatio2, (int)(liquidMaxAmount * (IngredientRatio2 / 100f)))); + if (!string.IsNullOrEmpty(IngredientIdx3)) ingredients.Add(new CocktailIngredient(IngredientIdx3, IngredientRatio3, (int)(liquidMaxAmount * (IngredientRatio3 / 100f)))); + if (!string.IsNullOrEmpty(IngredientIdx4)) ingredients.Add(new CocktailIngredient(IngredientIdx4, IngredientRatio4, (int)(liquidMaxAmount * (IngredientRatio4 / 100f)))); + if (!string.IsNullOrEmpty(IngredientIdx5)) ingredients.Add(new CocktailIngredient(IngredientIdx5, IngredientRatio5, (int)(liquidMaxAmount * (IngredientRatio5 / 100f)))); return ingredients; } - - - public List GetValidIngredientsToImage() - { - var ingredients = new List(5); - - 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/CocktailDataSo.cs b/Assets/02.Scripts/Item/Cocktail/CocktailDataSo.cs index d8c09ac76..83f223f25 100644 --- a/Assets/02.Scripts/Item/Cocktail/CocktailDataSo.cs +++ b/Assets/02.Scripts/Item/Cocktail/CocktailDataSo.cs @@ -1,3 +1,6 @@ +#if UNITY_EDITOR +using UnityEditor; +#endif using UnityEngine; namespace BlueWater.Items @@ -5,6 +8,24 @@ namespace BlueWater.Items [CreateAssetMenu(fileName = "CocktailDataTable", menuName = "ScriptableObjects/CocktailDataTable")] public class CocktailDataSo : DataSo { + protected override void OnEnable() + { + base.OnEnable(); + +#if UNITY_EDITOR + if (!EditorApplication.isPlayingOrWillChangePlaymode) + { + return; + } +#endif + + var maxLiquidAmount = FindAnyObjectByType().GetMaxLiquidCount(); + foreach (var element in _datas.Values) + { + element.ValidIngredients = element.GetValidIngredients(maxLiquidAmount); + } + } + } diff --git a/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs b/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs index 94774718b..b2565ea46 100644 --- a/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs +++ b/Assets/02.Scripts/Item/Cocktail/CocktailIngredient.cs @@ -6,13 +6,26 @@ namespace BlueWater.Items [Serializable] public class CocktailIngredient { + [field: SerializeField] public string Idx { get; set; } + + [field: SerializeField] + public int Ratio { get; set; } + + [field: SerializeField] public int Amount { get; set; } - + public CocktailIngredient(string idx, int amount) { Idx = idx; Amount = amount; } + + public CocktailIngredient(string idx, int ratio, int amount) + { + Idx = idx; + Ratio = ratio; + Amount = amount; + } } } \ No newline at end of file diff --git a/Assets/02.Scripts/Item/DataSo.cs b/Assets/02.Scripts/Item/DataSo.cs index 024c85d00..d1f1b32d8 100644 --- a/Assets/02.Scripts/Item/DataSo.cs +++ b/Assets/02.Scripts/Item/DataSo.cs @@ -12,7 +12,7 @@ namespace BlueWater.Items protected Dictionary _datas; - private void OnEnable() + protected virtual void OnEnable() { InitializeDictionary(); } diff --git a/Assets/02.Scripts/Prop/Tycoon/BartenderTable.cs b/Assets/02.Scripts/Prop/Tycoon/BartenderTable.cs index 6ed676364..e6dc8c965 100644 --- a/Assets/02.Scripts/Prop/Tycoon/BartenderTable.cs +++ b/Assets/02.Scripts/Prop/Tycoon/BartenderTable.cs @@ -4,9 +4,28 @@ namespace BlueWater.Tycoons { public class BartenderTable : ServingTable { + public override void Interaction() + { + // 테이블의 칵테일을 가져가는 경우 + if (CurrentPickupItem != null) + { + EventManager.InvokeTakeFromServingTable(); + CurrentTycoonPlayer.TycoonPickupHandler.PickupItem(CurrentPickupItem); + CurrentTycoonPlayer.InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem); + CocktailGlassImage.enabled = false; + InteractionCanvas.BalloonUi.DiscardItem(); + CurrentPickupItem = null; + } + } + public override bool CanInteraction() { - return false; + return CurrentPickupItem != null && !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpCocktail(); + } + + public override bool CanInteractionCrew() + { + return CurrentPickupItem != null && _orderedCustomer != null; } public void CompleteMakingCocktail(IPickup cocktailData) diff --git a/Assets/02.Scripts/Prop/Tycoon/ServingTable.cs b/Assets/02.Scripts/Prop/Tycoon/ServingTable.cs index 767c6cf4b..7039ee1dd 100644 --- a/Assets/02.Scripts/Prop/Tycoon/ServingTable.cs +++ b/Assets/02.Scripts/Prop/Tycoon/ServingTable.cs @@ -2,6 +2,7 @@ using System; using System.Collections; using BlueWater.Interfaces; using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Server; using BlueWater.Npcs.Customers; using BlueWater.Utility; using UnityEngine; @@ -47,7 +48,7 @@ namespace BlueWater.Tycoons private Material _originalCocktailGlassMaterial; private Coroutine _findCustomerMatchingItemInstance; private Coroutine _findServerCrewInstance; - private Customer _orderedCustomer; + protected Customer _orderedCustomer; public event Action OnInteractionCompleted; @@ -86,7 +87,7 @@ namespace BlueWater.Tycoons { // 1. 테이블에 칵테일이 있고, 플레이어가 칵테일을 들고 있지 않은 경우 // 2. 테이블에 칵테일이 없고, 플레이어가 칵테일을 들고 있는 경우 (정상적인 칵테일만) - return (CurrentPickupItem != null && !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpCocktail())|| + return (CurrentPickupItem != null && !CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpCocktail()) || (CurrentPickupItem == null && CurrentTycoonPlayer.TycoonPickupHandler.IsServablePickupItem()); } @@ -111,10 +112,7 @@ namespace BlueWater.Tycoons if (CurrentPickupItem != null) { var serverCrew = (ServerCrew)crew; - serverCrew.CurrentPickupItem = CurrentPickupItem; - serverCrew.InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem); - serverCrew.OrderedCustomer = _orderedCustomer; - serverCrew.IsServing = true; + serverCrew.TakeFromServingTable(CurrentPickupItem, _orderedCustomer); CocktailGlassImage.enabled = false; InteractionCanvas.BalloonUi.DiscardItem(); CurrentPickupItem = null; @@ -123,8 +121,6 @@ namespace BlueWater.Tycoons { var serverCrew = (ServerCrew)crew; CurrentPickupItem = serverCrew.CurrentPickupItem; - serverCrew.CurrentPickupItem = null; - serverCrew.BalloonUi.DiscardItem(); CocktailGlassImage.enabled = true; InteractionCanvas.BalloonUi.SetItemImage(CurrentPickupItem); serverCrew.ResetMission(); @@ -136,9 +132,10 @@ namespace BlueWater.Tycoons throw new NotImplementedException(); } - public bool CanInteractionCrew() + public virtual bool CanInteractionCrew() { - return CurrentPickupItem != null && _orderedCustomer != null; + return (CurrentPickupItem != null && _orderedCustomer != null) || + CurrentPickupItem == null; } private IEnumerator FindCustomerMatchingItem() @@ -147,13 +144,11 @@ namespace BlueWater.Tycoons while (true) { _orderedCustomer = TycoonManager.Instance.CustomerController.FindCustomerMatchingItem(_currentPickupItem); - if (_orderedCustomer != null) + if (_orderedCustomer && _orderedCustomer.CanInteractionCrew()) { - _orderedCustomer.IsMatchedServer = true; var crewController = TycoonManager.Instance.CrewController; Utils.StartUniqueCoroutine(this, ref _findServerCrewInstance, - crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.ServerCrews, crew => crew.OnMission(this))); - yield break; + crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.ServerCrews, crew => crew.OnMission(this, _orderedCustomer))); } yield return waitTime; diff --git a/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs b/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs index be80e5753..cfbffda69 100644 --- a/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs +++ b/Assets/02.Scripts/Prop/Tycoon/TableSeat.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Linq; using BlueWater.Interfaces; using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Cleaner; using BlueWater.Utility; using UnityEngine; @@ -82,6 +83,7 @@ namespace BlueWater.Tycoons if (_crewElapsedTime > _interactionHoldingTime) { OnInteractionCompleted?.Invoke(); + OnInteractionCompleted = null; CleanTable(); } @@ -100,7 +102,7 @@ namespace BlueWater.Tycoons public void SetTableNumber(int number) => TableNumber = number; - public void SetFood(Sprite sprite) + public void SetFood() { Food.sprite = _foodImage; Food.enabled = true; @@ -138,6 +140,7 @@ namespace BlueWater.Tycoons Food.enabled = false; IsCleaned = true; _isPlayerInteracting = false; + _isCrewInteracting = false; InteractionCanvas.BalloonUi.HideUi(); InteractionCanvas.BalloonUi.ResetUi(); } @@ -158,7 +161,7 @@ namespace BlueWater.Tycoons { _crewElapsedTime = 0f; _isCrewInteracting = true; - crew.IsCleaningTable = true; + ((CleanerCrew)crew).SetIsCleaningTable(true); } public void CancelInteractionCrew() diff --git a/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs b/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs index 9a174e8b4..5ff1f9c2f 100644 --- a/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs +++ b/Assets/02.Scripts/Prop/Tycoon/Vomiting.cs @@ -1,8 +1,7 @@ using System; -using System.Collections; -using System.Linq; using BlueWater.Interfaces; using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Cleaner; using BlueWater.Utility; using UnityEngine; @@ -56,6 +55,7 @@ namespace BlueWater.Tycoons if (_crewElapsedTime > _interactionHoldingTime) { OnInteractionCompleted?.Invoke(); + OnInteractionCompleted = null; Destroy(); } @@ -104,7 +104,7 @@ namespace BlueWater.Tycoons { _crewElapsedTime = 0f; _isCrewInteracting = true; - crew.IsCleaningFloor = true; + ((CleanerCrew)crew).SetIsCleaningFloor(true); } public void CancelInteractionCrew() diff --git a/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset b/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset index 06aa4b8f1..b2105a495 100644 --- a/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset +++ b/Assets/02.Scripts/ScriptableObject/Item/CocktailDataTable.asset @@ -19,15 +19,15 @@ MonoBehaviour: k__BackingField: "\uC4F0\uB808\uAE30" 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: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 7f08919123d8bb84194bd4be22c0dee8, type: 3} - k__BackingField: Cocktail001 k__BackingField: @@ -35,15 +35,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CA" k__BackingField: 0 k__BackingField: LiquidA - k__BackingField: 400 + k__BackingField: 100 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: 0 k__BackingField: {fileID: 21300000, guid: 0cf23778fd0b2994c9d608fbbf185468, type: 3} - k__BackingField: Cocktail002 k__BackingField: @@ -51,15 +51,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CB" k__BackingField: 0 k__BackingField: LiquidB - k__BackingField: 400 + k__BackingField: 100 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: 0 k__BackingField: {fileID: 21300000, guid: 600806d36167cb140aa40eb51cf58afa, type: 3} - k__BackingField: Cocktail003 k__BackingField: @@ -67,15 +67,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CC" k__BackingField: 0 k__BackingField: LiquidC - k__BackingField: 400 + k__BackingField: 100 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: 0 k__BackingField: {fileID: 21300000, guid: c55f4b0a55a391d488e54a28dc840509, type: 3} - k__BackingField: Cocktail004 k__BackingField: @@ -83,15 +83,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CD" k__BackingField: 0 k__BackingField: LiquidD - k__BackingField: 400 + k__BackingField: 100 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: 0 k__BackingField: {fileID: 21300000, guid: 576d6ff3856f8ef419586ff12f2742b5, type: 3} - k__BackingField: Cocktail005 k__BackingField: @@ -99,15 +99,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CE" k__BackingField: 0 k__BackingField: LiquidE - k__BackingField: 400 + k__BackingField: 100 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: 0 k__BackingField: {fileID: 21300000, guid: 527440f24542af142a67219f2bcbeec4, type: 3} - k__BackingField: Cocktail006 k__BackingField: @@ -115,15 +115,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CAC" k__BackingField: 5 k__BackingField: LiquidA - k__BackingField: 200 + k__BackingField: 50 k__BackingField: LiquidC - k__BackingField: 200 + k__BackingField: 50 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: {fileID: 21300000, guid: 6a4cd8cdf11fe024e8ecac8e3d60e10d, type: 3} - k__BackingField: Cocktail007 k__BackingField: @@ -131,15 +131,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CBD" k__BackingField: 5 k__BackingField: LiquidB - k__BackingField: 200 + k__BackingField: 50 k__BackingField: LiquidD - k__BackingField: 200 + k__BackingField: 50 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: {fileID: 21300000, guid: b38089ff4046ac044ba79dfa5116aa1b, type: 3} - k__BackingField: Cocktail008 k__BackingField: @@ -147,15 +147,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CCD" k__BackingField: 5 k__BackingField: LiquidC - k__BackingField: 200 + k__BackingField: 50 k__BackingField: LiquidD - k__BackingField: 200 + k__BackingField: 50 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: {fileID: 21300000, guid: 71954183dfb02424d835d964c2eb3fc6, type: 3} - k__BackingField: Cocktail009 k__BackingField: @@ -163,15 +163,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CABE" k__BackingField: 10 k__BackingField: LiquidA - k__BackingField: 100 + k__BackingField: 25 k__BackingField: LiquidB - k__BackingField: 100 + k__BackingField: 25 k__BackingField: LiquidE - k__BackingField: 200 + k__BackingField: 50 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: d0748411047fc4a41beb1fb8d551e01e, type: 3} - k__BackingField: Cocktail010 k__BackingField: @@ -179,15 +179,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CCDE" k__BackingField: 10 k__BackingField: LiquidC - k__BackingField: 100 + k__BackingField: 25 k__BackingField: LiquidD - k__BackingField: 100 + k__BackingField: 25 k__BackingField: LiquidE - k__BackingField: 200 + k__BackingField: 100 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: - k__BackingField: 0 + k__BackingField: 0 k__BackingField: {fileID: 21300000, guid: 335f1df58cd58914f97fe9ccae7f6c8c, type: 3} - k__BackingField: Cocktail011 k__BackingField: @@ -195,15 +195,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CB1" k__BackingField: 10 k__BackingField: LiquidB - k__BackingField: 320 + k__BackingField: 80 k__BackingField: Garnish1 - k__BackingField: 80 + k__BackingField: 20 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: {fileID: 21300000, guid: 600806d36167cb140aa40eb51cf58afa, type: 3} - k__BackingField: Cocktail012 k__BackingField: @@ -211,15 +211,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CD1" k__BackingField: 10 k__BackingField: LiquidD - k__BackingField: 320 + k__BackingField: 80 k__BackingField: Garnish1 - k__BackingField: 80 + k__BackingField: 20 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: {fileID: 21300000, guid: ee344f47787d148448bd3373235281b6, type: 3} - k__BackingField: Cocktail013 k__BackingField: @@ -227,15 +227,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CA2" k__BackingField: 5 k__BackingField: LiquidA - k__BackingField: 360 + k__BackingField: 90 k__BackingField: Garnish2 - k__BackingField: 40 + k__BackingField: 10 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: {fileID: 21300000, guid: aef7fd596cbfc854d87f408c14951641, type: 3} - k__BackingField: Cocktail014 k__BackingField: @@ -243,15 +243,15 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CC2" k__BackingField: 5 k__BackingField: LiquidC - k__BackingField: 360 + k__BackingField: 90 k__BackingField: Garnish2 - k__BackingField: 40 + k__BackingField: 10 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: {fileID: 21300000, guid: 91d99e534e5f3c04094b14ed920bec04, type: 3} - k__BackingField: Cocktail015 k__BackingField: @@ -259,13 +259,13 @@ MonoBehaviour: k__BackingField: "\uCE75\uD14C\uC77CE2" k__BackingField: 5 k__BackingField: LiquidE - k__BackingField: 360 + k__BackingField: 90 k__BackingField: Garnish2 - k__BackingField: 40 + k__BackingField: 10 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: {fileID: 21300000, guid: 527440f24542af142a67219f2bcbeec4, type: 3} diff --git a/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset b/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset index 0520358a9..aadb5728c 100644 --- a/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset +++ b/Assets/02.Scripts/ScriptableObject/LevelDataTable.asset @@ -19,7 +19,7 @@ MonoBehaviour: k__BackingField: 15 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 200 + k__BackingField: 100 k__BackingField: 20 k__BackingField: 20 k__BackingField: 10 @@ -30,7 +30,7 @@ MonoBehaviour: k__BackingField: 15 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 300 + k__BackingField: 100 k__BackingField: 20 k__BackingField: 19 k__BackingField: 10 @@ -41,7 +41,7 @@ MonoBehaviour: k__BackingField: 15 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 400 + k__BackingField: 200 k__BackingField: 20 k__BackingField: 18 k__BackingField: 10 @@ -52,7 +52,7 @@ MonoBehaviour: k__BackingField: 15 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 500 + k__BackingField: 200 k__BackingField: 20 k__BackingField: 17 k__BackingField: 10 @@ -63,7 +63,7 @@ MonoBehaviour: k__BackingField: 15 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 600 + k__BackingField: 200 k__BackingField: 20 k__BackingField: 16 k__BackingField: 10 @@ -74,7 +74,7 @@ MonoBehaviour: k__BackingField: 13 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 700 + k__BackingField: 200 k__BackingField: 20 k__BackingField: 15 k__BackingField: 10 @@ -85,7 +85,7 @@ MonoBehaviour: k__BackingField: 13 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 800 + k__BackingField: 300 k__BackingField: 19 k__BackingField: 15 k__BackingField: 10 @@ -96,7 +96,7 @@ MonoBehaviour: k__BackingField: 13 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 900 + k__BackingField: 300 k__BackingField: 18 k__BackingField: 15 k__BackingField: 10 @@ -107,7 +107,7 @@ MonoBehaviour: k__BackingField: 13 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1000 + k__BackingField: 300 k__BackingField: 17 k__BackingField: 15 k__BackingField: 10 @@ -118,7 +118,7 @@ MonoBehaviour: k__BackingField: 13 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1100 + k__BackingField: 300 k__BackingField: 16 k__BackingField: 15 k__BackingField: 10 @@ -129,7 +129,7 @@ MonoBehaviour: k__BackingField: 11 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1200 + k__BackingField: 300 k__BackingField: 15 k__BackingField: 14 k__BackingField: 8 @@ -140,7 +140,7 @@ MonoBehaviour: k__BackingField: 11 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1300 + k__BackingField: 400 k__BackingField: 15 k__BackingField: 13 k__BackingField: 8 @@ -151,7 +151,7 @@ MonoBehaviour: k__BackingField: 11 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1400 + k__BackingField: 400 k__BackingField: 15 k__BackingField: 12 k__BackingField: 8 @@ -162,7 +162,7 @@ MonoBehaviour: k__BackingField: 11 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1500 + k__BackingField: 400 k__BackingField: 15 k__BackingField: 11 k__BackingField: 8 @@ -173,7 +173,7 @@ MonoBehaviour: k__BackingField: 11 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1600 + k__BackingField: 400 k__BackingField: 15 k__BackingField: 10 k__BackingField: 8 @@ -184,7 +184,7 @@ MonoBehaviour: k__BackingField: 9 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1700 + k__BackingField: 400 k__BackingField: 15 k__BackingField: 10 k__BackingField: 8 @@ -195,7 +195,7 @@ MonoBehaviour: k__BackingField: 9 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1800 + k__BackingField: 500 k__BackingField: 14 k__BackingField: 10 k__BackingField: 8 @@ -206,7 +206,7 @@ MonoBehaviour: k__BackingField: 9 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 1900 + k__BackingField: 500 k__BackingField: 13 k__BackingField: 10 k__BackingField: 8 @@ -217,7 +217,7 @@ MonoBehaviour: k__BackingField: 9 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2000 + k__BackingField: 500 k__BackingField: 12 k__BackingField: 10 k__BackingField: 8 @@ -228,7 +228,7 @@ MonoBehaviour: k__BackingField: 9 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2100 + k__BackingField: 500 k__BackingField: 11 k__BackingField: 10 k__BackingField: 8 @@ -239,7 +239,7 @@ MonoBehaviour: k__BackingField: 7 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2200 + k__BackingField: 500 k__BackingField: 10 k__BackingField: 10 k__BackingField: 6 @@ -250,7 +250,7 @@ MonoBehaviour: k__BackingField: 7 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2300 + k__BackingField: 600 k__BackingField: 10 k__BackingField: 9 k__BackingField: 6 @@ -261,7 +261,7 @@ MonoBehaviour: k__BackingField: 7 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2400 + k__BackingField: 600 k__BackingField: 10 k__BackingField: 8 k__BackingField: 6 @@ -272,7 +272,7 @@ MonoBehaviour: k__BackingField: 7 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2500 + k__BackingField: 600 k__BackingField: 10 k__BackingField: 7 k__BackingField: 6 @@ -283,7 +283,7 @@ MonoBehaviour: k__BackingField: 7 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2600 + k__BackingField: 600 k__BackingField: 10 k__BackingField: 6 k__BackingField: 6 @@ -294,7 +294,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2700 + k__BackingField: 600 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -305,7 +305,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2800 + k__BackingField: 700 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -316,7 +316,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 2900 + k__BackingField: 700 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -327,7 +327,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3000 + k__BackingField: 700 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -338,7 +338,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3100 + k__BackingField: 700 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -349,7 +349,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3200 + k__BackingField: 700 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -360,7 +360,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3300 + k__BackingField: 800 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -371,7 +371,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3400 + k__BackingField: 800 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -382,7 +382,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3500 + k__BackingField: 800 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -393,7 +393,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3600 + k__BackingField: 800 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -404,7 +404,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3700 + k__BackingField: 800 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -415,7 +415,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3800 + k__BackingField: 900 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -426,7 +426,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 3900 + k__BackingField: 900 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -437,7 +437,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 4000 + k__BackingField: 900 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 @@ -448,7 +448,7 @@ MonoBehaviour: k__BackingField: 5 k__BackingField: 100 k__BackingField: 100 - k__BackingField: 4100 + k__BackingField: 900 k__BackingField: 10 k__BackingField: 5 k__BackingField: 6 diff --git a/Assets/02.Scripts/ScriptableObject/StageData.asset b/Assets/02.Scripts/ScriptableObject/StageData.asset index 0436f2909..900047734 100644 --- a/Assets/02.Scripts/ScriptableObject/StageData.asset +++ b/Assets/02.Scripts/ScriptableObject/StageData.asset @@ -13,7 +13,7 @@ MonoBehaviour: m_Name: StageData m_EditorClassIdentifier: k__BackingField: 5 - k__BackingField: 100 + k__BackingField: 10 k__BackingField: 30 - k__BackingField: 100 + k__BackingField: 20 k__BackingField: 30 diff --git a/Assets/02.Scripts/StateMachineController.cs b/Assets/02.Scripts/StateMachineController.cs new file mode 100644 index 000000000..c5a88ed6c --- /dev/null +++ b/Assets/02.Scripts/StateMachineController.cs @@ -0,0 +1,28 @@ +using BlueWater.Interfaces; +using UnityEngine; + +namespace BlueWater +{ + public class StateMachineController where T : MonoBehaviour + { + private IStateMachine _currentState; + + public StateMachineController(T character, IStateMachine startState) + { + _currentState = startState; + _currentState.EnterState(character); + } + + public void UpdateState(T character) + { + _currentState.UpdateState(character); + } + + public void TransitionToState(IStateMachine newState, T character) + { + _currentState.ExitState(character); + _currentState = newState; + _currentState.EnterState(character); + } + } +} diff --git a/Assets/02.Scripts/StateMachineController.cs.meta b/Assets/02.Scripts/StateMachineController.cs.meta new file mode 100644 index 000000000..dcadd3a06 --- /dev/null +++ b/Assets/02.Scripts/StateMachineController.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: dd7c16a583bfb8d4b91efffa6a51696d \ No newline at end of file diff --git a/Assets/02.Scripts/Tycoon/CrewController.cs b/Assets/02.Scripts/Tycoon/CrewController.cs index fdf207108..237e7f261 100644 --- a/Assets/02.Scripts/Tycoon/CrewController.cs +++ b/Assets/02.Scripts/Tycoon/CrewController.cs @@ -2,6 +2,9 @@ using System.Collections; using System.Collections.Generic; using System.Linq; using BlueWater.Npcs.Crews; +using BlueWater.Npcs.Crews.Bartender; +using BlueWater.Npcs.Crews.Cleaner; +using BlueWater.Npcs.Crews.Server; using BlueWater.Npcs.Customers; using BlueWater.Utility; using Sirenix.OdinInspector; @@ -135,7 +138,7 @@ namespace BlueWater.Tycoons { if (orderedCustomer.IsReceivedItem) yield break; - var orderedCocktailIngredients = orderedCustomer.OrderedCocktailData.GetValidIngredients(); + var orderedCocktailIngredients = orderedCustomer.OrderedCocktailData.ValidIngredients; if (!tycoonIngredientController.IsMakingCocktail(orderedCocktailIngredients)) break; if (element.MyBartenderTable.CurrentPickupItem != null || element.IsOnMission) continue; diff --git a/Assets/02.Scripts/Tycoon/CustomerController.cs b/Assets/02.Scripts/Tycoon/CustomerController.cs index 484a1d579..51476cd64 100644 --- a/Assets/02.Scripts/Tycoon/CustomerController.cs +++ b/Assets/02.Scripts/Tycoon/CustomerController.cs @@ -29,6 +29,7 @@ namespace BlueWater.Tycoons private CustomerTableController _customerTableController; private Coroutine _findEmptySeatCoroutineInstance; + private int _instanceCount; private void Start() { @@ -49,6 +50,8 @@ namespace BlueWater.Tycoons var currentLevelData = TycoonManager.Instance.GetCurrentLevelData(); var newCustomer = Instantiate(_customerPrefab, _customerSpawnTransform.position, Quaternion.identity); newCustomer.Initialize(currentLevelData, _customerSpawnTransform); + newCustomer.gameObject.name = $"Customer (Clone) {_instanceCount}"; + _instanceCount++; RegisterCustomer(newCustomer); return newCustomer; @@ -120,9 +123,9 @@ namespace BlueWater.Tycoons { foreach (var element in InstanceCustomers) { - if (servingTableItem.Idx != element.OrderedCocktailData.Idx) continue; + if (!element || element.IsReceivedItem || element.IsMatchedServer) continue; - if (element.IsMatchedServer) continue; + if (servingTableItem.Idx != element.OrderedCocktailData.Idx) continue; return element; } diff --git a/Assets/02.Scripts/Tycoon/LiquidController.cs b/Assets/02.Scripts/Tycoon/LiquidController.cs index a80f4865f..9df0df020 100644 --- a/Assets/02.Scripts/Tycoon/LiquidController.cs +++ b/Assets/02.Scripts/Tycoon/LiquidController.cs @@ -115,7 +115,7 @@ namespace BlueWater private bool _isShowingPanel; private bool _isPouring; private bool _isCompleted; - private float _startTime = float.PositiveInfinity; + private float _elapsedTime = float.PositiveInfinity; private int _instanceLiquidCount; private float _currentLiquidAmount; private float _liquidReachedTime; @@ -182,7 +182,8 @@ namespace BlueWater return; } - if (Time.time - _startTime >= _timeInterval) + _elapsedTime += Time.deltaTime; + if (_elapsedTime >= _timeInterval) { switch (currentBarrel.GetLiquidData().Type) { @@ -205,25 +206,9 @@ namespace BlueWater } currentBarrel.Consume(1); - _startTime = Time.time; + _elapsedTime -= _timeInterval; } } - // else - // { - // if (_instanceLiquidCount <= 0) return; - // - // var playerPosition = _tycoonPlayer.transform.position; - // var playerScreenPosition = TycoonCameraManager.Instance.MainCamera.WorldToScreenPoint(playerPosition); - // var panelWorldPosition = _overlayCamera.ScreenToWorldPoint(new Vector3(playerScreenPosition.x, - // playerScreenPosition.y, _overlayCamera.nearClipPlane)); - // panelWorldPosition += _endPositionOffset; - // - // if (_activeLiquidDatas.Count == 0 && _activeGarnishDatas.Count == 0) - // { - // _liquidPanel.transform.DOScale(_endScale, _moveDuration).SetEase(Ease.Linear); - // _liquidPanel.transform.DOMove(panelWorldPosition, _moveDuration).SetEase(Ease.Linear); - // } - // } if (_liquidReachedTime + _colorLerpSpeed >= Time.time) { @@ -359,7 +344,7 @@ namespace BlueWater EventManager.InvokeCocktailStarted(); } - _startTime = Time.time; + _elapsedTime = 0f; _isPouring = true; // To Center 이동 코루틴이 활성화 중이지 않을 때 @@ -425,7 +410,7 @@ namespace BlueWater // 모든 칵테일 데이터를 순회하면서 조건에 맞는 칵테일 찾기 foreach (var cocktailData in cocktailDatas.Values) { - var validIngredients = cocktailData.GetValidIngredients(); + var validIngredients = cocktailData.ValidIngredients; // 조건 1: 재료 개수 동일 체크 if (validIngredients.Count != currentCocktailIngredients.Count) @@ -621,6 +606,8 @@ namespace BlueWater _liquidPanel.SetActive(false); } + public int GetMaxLiquidCount() => _maxLiquidCount; + #endregion } } \ No newline at end of file diff --git a/Assets/02.Scripts/Tycoon/TycoonIngredientController.cs b/Assets/02.Scripts/Tycoon/TycoonIngredientController.cs index 244d3e3e8..4041d01a2 100644 --- a/Assets/02.Scripts/Tycoon/TycoonIngredientController.cs +++ b/Assets/02.Scripts/Tycoon/TycoonIngredientController.cs @@ -66,7 +66,7 @@ namespace BlueWater.Tycoons foreach (var element in allCocktails.Values) { - var requiredIngredients = element.GetValidIngredients().Select(ingredient => ingredient.Idx).ToList(); + var requiredIngredients = element.ValidIngredients.Select(ingredient => ingredient.Idx).ToList(); // 필요한 재료들이 모두 활성화된 재료 목록에 포함되어 있는지 확인 if (requiredIngredients.All(activeIngredientsIdx.Contains)) diff --git a/Assets/02.Scripts/TycoonCameraManager.cs b/Assets/02.Scripts/TycoonCameraManager.cs index 3533e127f..766b9820c 100644 --- a/Assets/02.Scripts/TycoonCameraManager.cs +++ b/Assets/02.Scripts/TycoonCameraManager.cs @@ -137,6 +137,14 @@ namespace BlueWater camera.transparencySortMode = TransparencySortMode.CustomAxis; camera.transparencySortAxis = _transparencySortAxis; } + + [Button("테스트용")] + private void Test() + { + var camera = Camera.main; + camera.transparencySortMode = TransparencySortMode.CustomAxis; + camera.transparencySortAxis = new Vector3(0, Mathf.Sin(Mathf.Deg2Rad * 40), Mathf.Cos(Mathf.Deg2Rad * 40)); + } #endregion } diff --git a/Assets/05.Prefabs/Props/Furniture/Interactions/BartenderTable.prefab b/Assets/05.Prefabs/Props/Furniture/Interactions/BartenderTable.prefab index 8f5c53031..892c7b8a0 100644 --- a/Assets/05.Prefabs/Props/Furniture/Interactions/BartenderTable.prefab +++ b/Assets/05.Prefabs/Props/Furniture/Interactions/BartenderTable.prefab @@ -170,14 +170,6 @@ PrefabInstance: propertyPath: m_Name value: BartenderTable objectReference: {fileID: 0} - - target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9659258 - objectReference: {fileID: 0} - - target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} - propertyPath: m_LocalRotation.x - value: 0.2588191 - objectReference: {fileID: 0} - target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 30 diff --git a/Assets/05.Prefabs/Props/Furniture/Interactions/ServingTable.prefab b/Assets/05.Prefabs/Props/Furniture/Interactions/ServingTable.prefab index f7711bb75..6882d786f 100644 --- a/Assets/05.Prefabs/Props/Furniture/Interactions/ServingTable.prefab +++ b/Assets/05.Prefabs/Props/Furniture/Interactions/ServingTable.prefab @@ -139,14 +139,6 @@ PrefabInstance: propertyPath: m_Name value: ServingTable objectReference: {fileID: 0} - - target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} - propertyPath: m_LocalRotation.w - value: 0.9659258 - objectReference: {fileID: 0} - - target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} - propertyPath: m_LocalRotation.x - value: 0.2588191 - objectReference: {fileID: 0} - target: {fileID: 7438534416270888028, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 30 @@ -256,7 +248,7 @@ MonoBehaviour: k__BackingField: 0.7 k__BackingField: IsOpened: 0 - _cocktailGlassImage: {fileID: 535721072425912087} + CocktailGlassImage: {fileID: 535721072425912087} --- !u!4 &5927803667513949971 stripped Transform: m_CorrespondingSourceObject: {fileID: 4011269187381704965, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3} diff --git a/Assets/05.Prefabs/Props/Furniture/Interactions/Vomiting.prefab b/Assets/05.Prefabs/Props/Furniture/Interactions/Vomiting.prefab index 8f7d5c205..161b3b2cb 100644 --- a/Assets/05.Prefabs/Props/Furniture/Interactions/Vomiting.prefab +++ b/Assets/05.Prefabs/Props/Furniture/Interactions/Vomiting.prefab @@ -207,7 +207,7 @@ MonoBehaviour: k__BackingField: {fileID: 0} k__BackingField: {fileID: 2100000, guid: 9db92b3ac1f276e42ae7d7bcfbbca549, type: 2} k__BackingField: 1 - k__BackingField: 0.3 + k__BackingField: 0.5 k__BackingField: "\uCE58\uC6B0\uAE30" IsOpened: 0 _interactionHoldingTime: 3 diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt b/Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt new file mode 100644 index 000000000..811c8cec7 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt @@ -0,0 +1,26 @@ +BillgeRope.png +size:1449,720 +filter:Linear,Linear +Gear +bounds:1096,368,350,351 +rotate:90 +Gear2 +bounds:744,366,350,352 +Handle +bounds:1202,203,162,163 +Rope +bounds:2,364,740,354 +Rope2 +bounds:2,7,728,355 +SmallGear +bounds:1189,7,83,83 +SmallGear2 +bounds:1202,92,109,110 +rotate:90 +SmallGear3 +bounds:1366,282,84,81 +rotate:90 +SmallRope +bounds:744,184,456,180 +SmallRope2 +bounds:732,2,455,180 diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt.meta b/Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt.meta new file mode 100644 index 000000000..eb2e33919 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e766c251b86f5284289007c365c5711c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope.png b/Assets/08.Spines/Uis/Chain/BillgeRope.png new file mode 100644 index 000000000..b754a5dd8 Binary files /dev/null and b/Assets/08.Spines/Uis/Chain/BillgeRope.png differ diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope.png.meta b/Assets/08.Spines/Uis/Chain/BillgeRope.png.meta new file mode 100644 index 000000000..f668de119 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope.png.meta @@ -0,0 +1,143 @@ +fileFormatVersion: 2 +guid: 96e54b1b19146ab48a5653fcef2157c1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + - serializedVersion: 4 + buildTarget: WindowsStoreApps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes b/Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes new file mode 100644 index 000000000..973514264 Binary files /dev/null and b/Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes differ diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes.meta b/Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes.meta new file mode 100644 index 000000000..ad3b2bc15 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0db0e54162d09e4418b99615e805310f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset b/Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset new file mode 100644 index 000000000..a6efd4aca --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a6b194f808b1af6499c93410e504af42, type: 3} + m_Name: BillgeRope_Atlas + m_EditorClassIdentifier: + textureLoadingMode: 0 + onDemandTextureLoader: {fileID: 0} + atlasFile: {fileID: 4900000, guid: e766c251b86f5284289007c365c5711c, type: 3} + materials: + - {fileID: 2100000, guid: b5a894fc9a151b344a9c895424eeb9c3, type: 2} diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset.meta b/Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset.meta new file mode 100644 index 000000000..8947218ac --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9691d92a66d3a314ebe276a89b16a278 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat b/Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat new file mode 100644 index 000000000..d93af0093 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BillgeRope_Material + m_Shader: {fileID: 4800000, guid: b77e51f117177954ea863bdb422344fb, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _STRAIGHT_ALPHA_INPUT + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + m_Texture: {fileID: 2800000, guid: 96e54b1b19146ab48a5653fcef2157c1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Cutoff: 0.1 + - _DoubleSidedLighting: 0 + - _LightAffectsAdditive: 0 + - _ReceiveShadows: 0 + - _StencilComp: 8 + - _StencilRef: 1 + - _StraightAlphaInput: 1 + - _TintBlack: 0 + - _ZWrite: 0 + m_Colors: + - _Black: {r: 0, g: 0, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat.meta b/Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat.meta new file mode 100644 index 000000000..1cf258701 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b5a894fc9a151b344a9c895424eeb9c3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset b/Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset new file mode 100644 index 000000000..76098a5aa --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset @@ -0,0 +1,31 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1b3b4b945939a54ea0b23d3396115fb, type: 3} + m_Name: BillgeRope_SkeletonData + m_EditorClassIdentifier: + atlasAssets: + - {fileID: 11400000, guid: 9691d92a66d3a314ebe276a89b16a278, type: 2} + scale: 0.01 + skeletonJSON: {fileID: 4900000, guid: 0db0e54162d09e4418b99615e805310f, type: 3} + isUpgradingBlendModeMaterials: 0 + blendModeMaterials: + requiresBlendModeMaterials: 0 + applyAdditiveMaterial: 1 + additiveMaterials: [] + multiplyMaterials: [] + screenMaterials: [] + skeletonDataModifiers: [] + fromAnimation: [] + toAnimation: [] + duration: [] + defaultMix: 0.2 + controller: {fileID: 0} diff --git a/Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset.meta b/Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset.meta new file mode 100644 index 000000000..c82b39cc7 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f92d39c8c0ff1414790be3559bcfb1b0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/Old.meta b/Assets/08.Spines/Uis/Chain/Old.meta new file mode 100644 index 000000000..ade008656 --- /dev/null +++ b/Assets/08.Spines/Uis/Chain/Old.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52fd0c9f659893e489dc73019362bdb1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/08.Spines/Uis/Chain/Chain.atlas.txt b/Assets/08.Spines/Uis/Chain/Old/Chain.atlas.txt similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain.atlas.txt rename to Assets/08.Spines/Uis/Chain/Old/Chain.atlas.txt diff --git a/Assets/08.Spines/Uis/Chain/Chain.atlas.txt.meta b/Assets/08.Spines/Uis/Chain/Old/Chain.atlas.txt.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain.atlas.txt.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain.atlas.txt.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain.png b/Assets/08.Spines/Uis/Chain/Old/Chain.png similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain.png rename to Assets/08.Spines/Uis/Chain/Old/Chain.png diff --git a/Assets/08.Spines/Uis/Chain/Chain.png.meta b/Assets/08.Spines/Uis/Chain/Old/Chain.png.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain.png.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain.png.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain.skel.bytes b/Assets/08.Spines/Uis/Chain/Old/Chain.skel.bytes similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain.skel.bytes rename to Assets/08.Spines/Uis/Chain/Old/Chain.skel.bytes diff --git a/Assets/08.Spines/Uis/Chain/Chain.skel.bytes.meta b/Assets/08.Spines/Uis/Chain/Old/Chain.skel.bytes.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain.skel.bytes.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain.skel.bytes.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain_2.png b/Assets/08.Spines/Uis/Chain/Old/Chain_2.png similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_2.png rename to Assets/08.Spines/Uis/Chain/Old/Chain_2.png diff --git a/Assets/08.Spines/Uis/Chain/Chain_2.png.meta b/Assets/08.Spines/Uis/Chain/Old/Chain_2.png.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_2.png.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain_2.png.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain_Atlas.asset b/Assets/08.Spines/Uis/Chain/Old/Chain_Atlas.asset similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_Atlas.asset rename to Assets/08.Spines/Uis/Chain/Old/Chain_Atlas.asset diff --git a/Assets/08.Spines/Uis/Chain/Chain_Atlas.asset.meta b/Assets/08.Spines/Uis/Chain/Old/Chain_Atlas.asset.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_Atlas.asset.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain_Atlas.asset.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain_Chain.mat b/Assets/08.Spines/Uis/Chain/Old/Chain_Chain.mat similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_Chain.mat rename to Assets/08.Spines/Uis/Chain/Old/Chain_Chain.mat diff --git a/Assets/08.Spines/Uis/Chain/Chain_Chain.mat.meta b/Assets/08.Spines/Uis/Chain/Old/Chain_Chain.mat.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_Chain.mat.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain_Chain.mat.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain_Chain_2.mat b/Assets/08.Spines/Uis/Chain/Old/Chain_Chain_2.mat similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_Chain_2.mat rename to Assets/08.Spines/Uis/Chain/Old/Chain_Chain_2.mat diff --git a/Assets/08.Spines/Uis/Chain/Chain_Chain_2.mat.meta b/Assets/08.Spines/Uis/Chain/Old/Chain_Chain_2.mat.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_Chain_2.mat.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain_Chain_2.mat.meta diff --git a/Assets/08.Spines/Uis/Chain/Chain_SkeletonData.asset b/Assets/08.Spines/Uis/Chain/Old/Chain_SkeletonData.asset similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_SkeletonData.asset rename to Assets/08.Spines/Uis/Chain/Old/Chain_SkeletonData.asset diff --git a/Assets/08.Spines/Uis/Chain/Chain_SkeletonData.asset.meta b/Assets/08.Spines/Uis/Chain/Old/Chain_SkeletonData.asset.meta similarity index 100% rename from Assets/08.Spines/Uis/Chain/Chain_SkeletonData.asset.meta rename to Assets/08.Spines/Uis/Chain/Old/Chain_SkeletonData.asset.meta diff --git a/Assets/11.BehaviorTree/CleanerCrew.asset b/Assets/11.BehaviorTree/CleanerCrew.asset index c7cd742b1..e74426e97 100644 --- a/Assets/11.BehaviorTree/CleanerCrew.asset +++ b/Assets/11.BehaviorTree/CleanerCrew.asset @@ -25,8 +25,8 @@ MonoBehaviour: Sequence","Instant":true,"AbortTypeabortType":"LowerPriority","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.CheckOnMission","NodeData":{"Offset":"(-120,150)"},"ID":5,"Name":"Check On Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(140.876663,145.4505)"},"ID":6,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-105,147.5)"},"ID":7,"Name":"Succes Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.OnMission","NodeData":{"Offset":"(-140,150)"},"ID":8,"Name":"On - Mission","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.CompleteMission","NodeData":{"Offset":"(0,150)"},"ID":9,"Name":"Complete - Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(162.857178,152.857422)"},"ID":10,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(150,145.2378)"},"ID":11,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(289.942871,151.213776)"},"ID":12,"Name":"Fail + Mission","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.IsCompletedMission","NodeData":{"Offset":"(-2,149.363647)"},"ID":9,"Name":"Is + Completed Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(162.857178,152.857422)"},"ID":10,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(150,145.2378)"},"ID":11,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(289.942871,151.213776)"},"ID":12,"Name":"Fail Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.MoveToRandomPositionInRange","NodeData":{"Offset":"(-100.101685,148.086548)"},"ID":13,"Name":"Move To Random Position In Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(99.99939,150)"},"ID":14,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true}]}' fieldSerializationData: diff --git a/Assets/11.BehaviorTree/ServerCrew.asset b/Assets/11.BehaviorTree/ServerCrew.asset index 47b80e402..9ab046f8c 100644 --- a/Assets/11.BehaviorTree/ServerCrew.asset +++ b/Assets/11.BehaviorTree/ServerCrew.asset @@ -28,8 +28,8 @@ MonoBehaviour: Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.TakeServingItem","NodeData":{"Offset":"(-90,150)"},"ID":8,"Name":"Take Serving Item","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Selector","NodeData":{"Offset":"(93.74995,150)","Comment":"\uc190\ub2d8\uc5d0\uac8c \uc11c\ube59\uc744 \uc131\uacf5\ud588\ub294\uc9c0 \uccb4\ud06c"},"ID":9,"Name":"Selector","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(-198.778625,149.4115)"},"ID":10,"Name":"Succes - Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.Serving","NodeData":{"Offset":"(-170,150)"},"ID":11,"Name":"Serving","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.CompleteMission","NodeData":{"Offset":"(0,150)"},"ID":12,"Name":"Complete - Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(160,150)"},"ID":13,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(190.697632,148.3722)"},"ID":14,"Name":"Fail + Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.Serving","NodeData":{"Offset":"(-170,150)"},"ID":11,"Name":"Serving","Instant":true},{"Type":"BlueWater.BehaviorTrees.Actions.IsCompletedMission","NodeData":{"Offset":"(-2,153.363647)"},"ID":12,"Name":"Is + Completed Mission","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(160,150)"},"ID":13,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(190.697632,148.3722)"},"ID":14,"Name":"Fail Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(-50,149.535156)"},"ID":15,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}},{"Type":"BlueWater.BehaviorTrees.Actions.Refind","NodeData":{"Offset":"(90,149.535156)"},"ID":16,"Name":"Refind","Instant":true}]}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(118.750023,145.2378)"},"ID":17,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]},{"Type":"BehaviorDesigner.Runtime.Tasks.Sequence","NodeData":{"Offset":"(376.1497,151.213776)"},"ID":18,"Name":"Fail Sequence","Instant":true,"AbortTypeabortType":"None","Children":[{"Type":"BlueWater.BehaviorTrees.Actions.MoveToRandomPositionInRange","NodeData":{"Offset":"(-100.101685,148.086548)"},"ID":19,"Name":"Move To Random Position In Range","Instant":true},{"Type":"BehaviorDesigner.Runtime.Tasks.Wait","NodeData":{"Offset":"(99.99939,150)"},"ID":20,"Name":"Wait","Instant":true,"SharedFloatwaitTime":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":2},"SharedBoolrandomWait":{"Type":"BehaviorDesigner.Runtime.SharedBool","Name":null,"BooleanmValue":false},"SharedFloatrandomWaitMin":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1},"SharedFloatrandomWaitMax":{"Type":"BehaviorDesigner.Runtime.SharedFloat","Name":null,"SinglemValue":1}}]}]}]}]},"Variables":[{"Type":"BehaviorDesigner.Runtime.SharedGameObject","Name":"MyObj","IsShared":true}]}' diff --git a/Assets/Resources/Excel/CocktailDataTable.xlsx b/Assets/Resources/Excel/CocktailDataTable.xlsx index 064ed2363..30561422c 100644 Binary files a/Assets/Resources/Excel/CocktailDataTable.xlsx and b/Assets/Resources/Excel/CocktailDataTable.xlsx differ diff --git a/Assets/Resources/Excel/LevelDataTable.xlsx b/Assets/Resources/Excel/LevelDataTable.xlsx index 363cf4d42..23f1e4def 100644 Binary files a/Assets/Resources/Excel/LevelDataTable.xlsx and b/Assets/Resources/Excel/LevelDataTable.xlsx differ diff --git a/Assets/Resources/JSON/CocktailDataTable.json b/Assets/Resources/JSON/CocktailDataTable.json index f8bb3d7db..8844e9f3f 100644 --- a/Assets/Resources/JSON/CocktailDataTable.json +++ b/Assets/Resources/JSON/CocktailDataTable.json @@ -4,239 +4,239 @@ "Name": "쓰레기", "RatioRange": 0, "IngredientIdx1": "", - "IngredientAmount1": 0, + "IngredientRatio1": 0, "IngredientIdx2": "", - "IngredientAmount2": 0, + "IngredientRatio2": 0, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail001", "Name": "칵테일A", "RatioRange": 0, "IngredientIdx1": "LiquidA", - "IngredientAmount1": 400, + "IngredientRatio1": 100, "IngredientIdx2": "", - "IngredientAmount2": 0, + "IngredientRatio2": 0, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail002", "Name": "칵테일B", "RatioRange": 0, "IngredientIdx1": "LiquidB", - "IngredientAmount1": 400, + "IngredientRatio1": 100, "IngredientIdx2": "", - "IngredientAmount2": 0, + "IngredientRatio2": 0, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail003", "Name": "칵테일C", "RatioRange": 0, "IngredientIdx1": "LiquidC", - "IngredientAmount1": 400, + "IngredientRatio1": 100, "IngredientIdx2": "", - "IngredientAmount2": 0, + "IngredientRatio2": 0, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail004", "Name": "칵테일D", "RatioRange": 0, "IngredientIdx1": "LiquidD", - "IngredientAmount1": 400, + "IngredientRatio1": 100, "IngredientIdx2": "", - "IngredientAmount2": 0, + "IngredientRatio2": 0, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail005", "Name": "칵테일E", "RatioRange": 0, "IngredientIdx1": "LiquidE", - "IngredientAmount1": 400, + "IngredientRatio1": 100, "IngredientIdx2": "", - "IngredientAmount2": 0, + "IngredientRatio2": 0, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail006", "Name": "칵테일AC", "RatioRange": 5, "IngredientIdx1": "LiquidA", - "IngredientAmount1": 200, + "IngredientRatio1": 50, "IngredientIdx2": "LiquidC", - "IngredientAmount2": 200, + "IngredientRatio2": 50, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail007", "Name": "칵테일BD", "RatioRange": 5, "IngredientIdx1": "LiquidB", - "IngredientAmount1": 200, + "IngredientRatio1": 50, "IngredientIdx2": "LiquidD", - "IngredientAmount2": 200, + "IngredientRatio2": 50, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail008", "Name": "칵테일CD", "RatioRange": 5, "IngredientIdx1": "LiquidC", - "IngredientAmount1": 200, + "IngredientRatio1": 50, "IngredientIdx2": "LiquidD", - "IngredientAmount2": 200, + "IngredientRatio2": 50, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail009", "Name": "칵테일ABE", "RatioRange": 10, "IngredientIdx1": "LiquidA", - "IngredientAmount1": 100, + "IngredientRatio1": 25, "IngredientIdx2": "LiquidB", - "IngredientAmount2": 100, + "IngredientRatio2": 25, "IngredientIdx3": "LiquidE", - "IngredientAmount3": 200, + "IngredientRatio3": 50, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail010", "Name": "칵테일CDE", "RatioRange": 10, "IngredientIdx1": "LiquidC", - "IngredientAmount1": 100, + "IngredientRatio1": 25, "IngredientIdx2": "LiquidD", - "IngredientAmount2": 100, + "IngredientRatio2": 25, "IngredientIdx3": "LiquidE", - "IngredientAmount3": 200, + "IngredientRatio3": 100, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail011", "Name": "칵테일B1", "RatioRange": 10, "IngredientIdx1": "LiquidB", - "IngredientAmount1": 320, + "IngredientRatio1": 80, "IngredientIdx2": "Garnish1", - "IngredientAmount2": 80, + "IngredientRatio2": 20, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail012", "Name": "칵테일D1", "RatioRange": 10, "IngredientIdx1": "LiquidD", - "IngredientAmount1": 320, + "IngredientRatio1": 80, "IngredientIdx2": "Garnish1", - "IngredientAmount2": 80, + "IngredientRatio2": 20, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail013", "Name": "칵테일A2", "RatioRange": 5, "IngredientIdx1": "LiquidA", - "IngredientAmount1": 360, + "IngredientRatio1": 90, "IngredientIdx2": "Garnish2", - "IngredientAmount2": 40, + "IngredientRatio2": 10, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail014", "Name": "칵테일C2", "RatioRange": 5, "IngredientIdx1": "LiquidC", - "IngredientAmount1": 360, + "IngredientRatio1": 90, "IngredientIdx2": "Garnish2", - "IngredientAmount2": 40, + "IngredientRatio2": 10, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 }, { "Idx": "Cocktail015", "Name": "칵테일E2", "RatioRange": 5, "IngredientIdx1": "LiquidE", - "IngredientAmount1": 360, + "IngredientRatio1": 90, "IngredientIdx2": "Garnish2", - "IngredientAmount2": 40, + "IngredientRatio2": 10, "IngredientIdx3": "", - "IngredientAmount3": 0, + "IngredientRatio3": 0, "IngredientIdx4": "", - "IngredientAmount4": 0, + "IngredientRatio4": 0, "IngredientIdx5": "", - "IngredientAmount5": 0 + "IngredienRatio5": 0 } ] \ No newline at end of file diff --git a/Assets/Resources/JSON/LevelDataTable.json b/Assets/Resources/JSON/LevelDataTable.json index 2f5600448..f45657853 100644 --- a/Assets/Resources/JSON/LevelDataTable.json +++ b/Assets/Resources/JSON/LevelDataTable.json @@ -4,7 +4,7 @@ "CustomerRespawn": 15, "Gold": 100, "Exp": 100, - "RequiredExp": 200, + "RequiredExp": 100, "WaitTime": 20, "HurryTime": 20, "EatingTime": 10, @@ -15,7 +15,7 @@ "CustomerRespawn": 15, "Gold": 100, "Exp": 100, - "RequiredExp": 300, + "RequiredExp": 100, "WaitTime": 20, "HurryTime": 19, "EatingTime": 10, @@ -26,7 +26,7 @@ "CustomerRespawn": 15, "Gold": 100, "Exp": 100, - "RequiredExp": 400, + "RequiredExp": 200, "WaitTime": 20, "HurryTime": 18, "EatingTime": 10, @@ -37,7 +37,7 @@ "CustomerRespawn": 15, "Gold": 100, "Exp": 100, - "RequiredExp": 500, + "RequiredExp": 200, "WaitTime": 20, "HurryTime": 17, "EatingTime": 10, @@ -48,7 +48,7 @@ "CustomerRespawn": 15, "Gold": 100, "Exp": 100, - "RequiredExp": 600, + "RequiredExp": 200, "WaitTime": 20, "HurryTime": 16, "EatingTime": 10, @@ -59,7 +59,7 @@ "CustomerRespawn": 13, "Gold": 100, "Exp": 100, - "RequiredExp": 700, + "RequiredExp": 200, "WaitTime": 20, "HurryTime": 15, "EatingTime": 10, @@ -70,7 +70,7 @@ "CustomerRespawn": 13, "Gold": 100, "Exp": 100, - "RequiredExp": 800, + "RequiredExp": 300, "WaitTime": 19, "HurryTime": 15, "EatingTime": 10, @@ -81,7 +81,7 @@ "CustomerRespawn": 13, "Gold": 100, "Exp": 100, - "RequiredExp": 900, + "RequiredExp": 300, "WaitTime": 18, "HurryTime": 15, "EatingTime": 10, @@ -92,7 +92,7 @@ "CustomerRespawn": 13, "Gold": 100, "Exp": 100, - "RequiredExp": 1000, + "RequiredExp": 300, "WaitTime": 17, "HurryTime": 15, "EatingTime": 10, @@ -103,7 +103,7 @@ "CustomerRespawn": 13, "Gold": 100, "Exp": 100, - "RequiredExp": 1100, + "RequiredExp": 300, "WaitTime": 16, "HurryTime": 15, "EatingTime": 10, @@ -114,7 +114,7 @@ "CustomerRespawn": 11, "Gold": 100, "Exp": 100, - "RequiredExp": 1200, + "RequiredExp": 300, "WaitTime": 15, "HurryTime": 14, "EatingTime": 8, @@ -125,7 +125,7 @@ "CustomerRespawn": 11, "Gold": 100, "Exp": 100, - "RequiredExp": 1300, + "RequiredExp": 400, "WaitTime": 15, "HurryTime": 13, "EatingTime": 8, @@ -136,7 +136,7 @@ "CustomerRespawn": 11, "Gold": 100, "Exp": 100, - "RequiredExp": 1400, + "RequiredExp": 400, "WaitTime": 15, "HurryTime": 12, "EatingTime": 8, @@ -147,7 +147,7 @@ "CustomerRespawn": 11, "Gold": 100, "Exp": 100, - "RequiredExp": 1500, + "RequiredExp": 400, "WaitTime": 15, "HurryTime": 11, "EatingTime": 8, @@ -158,7 +158,7 @@ "CustomerRespawn": 11, "Gold": 100, "Exp": 100, - "RequiredExp": 1600, + "RequiredExp": 400, "WaitTime": 15, "HurryTime": 10, "EatingTime": 8, @@ -169,7 +169,7 @@ "CustomerRespawn": 9, "Gold": 100, "Exp": 100, - "RequiredExp": 1700, + "RequiredExp": 400, "WaitTime": 15, "HurryTime": 10, "EatingTime": 8, @@ -180,7 +180,7 @@ "CustomerRespawn": 9, "Gold": 100, "Exp": 100, - "RequiredExp": 1800, + "RequiredExp": 500, "WaitTime": 14, "HurryTime": 10, "EatingTime": 8, @@ -191,7 +191,7 @@ "CustomerRespawn": 9, "Gold": 100, "Exp": 100, - "RequiredExp": 1900, + "RequiredExp": 500, "WaitTime": 13, "HurryTime": 10, "EatingTime": 8, @@ -202,7 +202,7 @@ "CustomerRespawn": 9, "Gold": 100, "Exp": 100, - "RequiredExp": 2000, + "RequiredExp": 500, "WaitTime": 12, "HurryTime": 10, "EatingTime": 8, @@ -213,7 +213,7 @@ "CustomerRespawn": 9, "Gold": 100, "Exp": 100, - "RequiredExp": 2100, + "RequiredExp": 500, "WaitTime": 11, "HurryTime": 10, "EatingTime": 8, @@ -224,7 +224,7 @@ "CustomerRespawn": 7, "Gold": 100, "Exp": 100, - "RequiredExp": 2200, + "RequiredExp": 500, "WaitTime": 10, "HurryTime": 10, "EatingTime": 6, @@ -235,7 +235,7 @@ "CustomerRespawn": 7, "Gold": 100, "Exp": 100, - "RequiredExp": 2300, + "RequiredExp": 600, "WaitTime": 10, "HurryTime": 9, "EatingTime": 6, @@ -246,7 +246,7 @@ "CustomerRespawn": 7, "Gold": 100, "Exp": 100, - "RequiredExp": 2400, + "RequiredExp": 600, "WaitTime": 10, "HurryTime": 8, "EatingTime": 6, @@ -257,7 +257,7 @@ "CustomerRespawn": 7, "Gold": 100, "Exp": 100, - "RequiredExp": 2500, + "RequiredExp": 600, "WaitTime": 10, "HurryTime": 7, "EatingTime": 6, @@ -268,7 +268,7 @@ "CustomerRespawn": 7, "Gold": 100, "Exp": 100, - "RequiredExp": 2600, + "RequiredExp": 600, "WaitTime": 10, "HurryTime": 6, "EatingTime": 6, @@ -279,7 +279,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 2700, + "RequiredExp": 600, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -290,7 +290,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 2800, + "RequiredExp": 700, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -301,7 +301,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 2900, + "RequiredExp": 700, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -312,7 +312,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3000, + "RequiredExp": 700, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -323,7 +323,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3100, + "RequiredExp": 700, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -334,7 +334,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3200, + "RequiredExp": 700, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -345,7 +345,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3300, + "RequiredExp": 800, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -356,7 +356,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3400, + "RequiredExp": 800, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -367,7 +367,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3500, + "RequiredExp": 800, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -378,7 +378,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3600, + "RequiredExp": 800, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -389,7 +389,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3700, + "RequiredExp": 800, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -400,7 +400,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3800, + "RequiredExp": 900, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -411,7 +411,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 3900, + "RequiredExp": 900, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -422,7 +422,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 4000, + "RequiredExp": 900, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6, @@ -433,7 +433,7 @@ "CustomerRespawn": 5, "Gold": 100, "Exp": 100, - "RequiredExp": 4100, + "RequiredExp": 900, "WaitTime": 10, "HurryTime": 5, "EatingTime": 6,