0.3.2.1 버전 업데이트
This commit is contained in:
parent
517285cbc3
commit
10a7c01066
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
using BehaviorDesigner.Runtime.Tasks;
|
||||
using BlueWater.Npcs.Crews;
|
||||
using BlueWater.Npcs.Crews.Bartender;
|
||||
|
||||
namespace BlueWater.BehaviorTrees.Actions
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
using BehaviorDesigner.Runtime.Tasks;
|
||||
using BlueWater.Npcs.Crews;
|
||||
using BlueWater.Npcs.Crews.Bartender;
|
||||
|
||||
namespace BlueWater.BehaviorTrees.Actions
|
||||
{
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
8
Assets/02.Scripts/Character/Npc/Crew/Bartender.meta
Normal file
8
Assets/02.Scripts/Character/Npc/Crew/Bartender.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35b0111a0732856408248d570b2d6501
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -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<BartenderCrew> StateMachineController { get; private set; }
|
||||
public IStateMachine<BartenderCrew> IdleState { get; private set; }
|
||||
public IStateMachine<BartenderCrew> 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<BartenderCrew>(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;
|
@ -0,0 +1,25 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Bartender
|
||||
{
|
||||
public class IdleState : IStateMachine<BartenderCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9c0ddd65aa3624458b71816e3981c58
|
@ -0,0 +1,24 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Bartender
|
||||
{
|
||||
public class MakingCocktailState : IStateMachine<BartenderCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
8
Assets/02.Scripts/Character/Npc/Crew/Cleaner.meta
Normal file
8
Assets/02.Scripts/Character/Npc/Crew/Cleaner.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c56d6556876306c4d909c6933df23d82
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
52
Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs
Normal file
52
Assets/02.Scripts/Character/Npc/Crew/Cleaner/CleanerCrew.cs
Normal file
@ -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<CleanerCrew> StateMachineController { get; private set; }
|
||||
public IStateMachine<CleanerCrew> IdleState { get; private set; }
|
||||
public IStateMachine<CleanerCrew> WalkingState { get; private set; }
|
||||
public IStateMachine<CleanerCrew> CleaningFloorState { get; private set; }
|
||||
public IStateMachine<CleanerCrew> 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<CleanerCrew>(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;
|
||||
}
|
||||
}
|
8
Assets/02.Scripts/Character/Npc/Crew/Cleaner/State.meta
Normal file
8
Assets/02.Scripts/Character/Npc/Crew/Cleaner/State.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b76597d3681048e4b94d459ab2538a5f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,31 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Cleaner
|
||||
{
|
||||
public class CleaningFloorState : IStateMachine<CleanerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Cleaner
|
||||
{
|
||||
public class CleaningTableState : IStateMachine<CleanerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Cleaner
|
||||
{
|
||||
public class IdleState : IStateMachine<CleanerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 25dad99d4102ee1488ddc67be46b0aa7
|
@ -0,0 +1,33 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Cleaner
|
||||
{
|
||||
public class WalkingState : IStateMachine<CleanerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 18d2e384fa17d9145a22b1810557daa7
|
@ -1,7 +0,0 @@
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class CleanerCrew: Crew
|
||||
{
|
||||
|
||||
}
|
||||
}
|
@ -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<Crew> CurrentState { get; private set; }
|
||||
public IState<Crew> IdleState { get; private set; }
|
||||
public IState<Crew> WalkingState { get; private set; }
|
||||
public IState<Crew> ServingIdleState { get; private set; }
|
||||
public IState<Crew> ServingState { get; private set; }
|
||||
public IState<Crew> CleaningFloorState { get; private set; }
|
||||
public IState<Crew> CleaningTableState { get; private set; }
|
||||
public IState<Crew> 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<Crew> 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
|
||||
}
|
||||
}
|
8
Assets/02.Scripts/Character/Npc/Crew/Server.meta
Normal file
8
Assets/02.Scripts/Character/Npc/Crew/Server.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aad9c20e25429d14f977b9e2ad515bde
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
71
Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs
Normal file
71
Assets/02.Scripts/Character/Npc/Crew/Server/ServerCrew.cs
Normal file
@ -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<ServerCrew> StateMachineController { get; private set; }
|
||||
public IStateMachine<ServerCrew> IdleState { get; private set; }
|
||||
public IStateMachine<ServerCrew> WalkingState { get; private set; }
|
||||
public IStateMachine<ServerCrew> 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<ServerCrew>(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;
|
||||
}
|
||||
}
|
||||
}
|
8
Assets/02.Scripts/Character/Npc/Crew/Server/State.meta
Normal file
8
Assets/02.Scripts/Character/Npc/Crew/Server/State.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 21ecb96e6b51502459f165c484d1a11f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,33 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Server
|
||||
{
|
||||
public class IdleState : IStateMachine<ServerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Server
|
||||
{
|
||||
public class ServingState : IStateMachine<ServerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews.Server
|
||||
{
|
||||
public class WalkingState : IStateMachine<ServerCrew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class CleaningFloorState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class CleaningTableState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class IdleState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class MakingCocktailState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class ServingIdleState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: afd7c038ff62b644f98d20d220bb13a8
|
@ -1,39 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class ServingState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -1,41 +0,0 @@
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Crews
|
||||
{
|
||||
public class WalkingState : IState<Crew>
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -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<Customer> CurrentState { get; private set; }
|
||||
public IState<Customer> IdleState { get; private set; }
|
||||
public IState<Customer> WalkingState { get; private set; }
|
||||
public IState<Customer> HappyState { get; private set; }
|
||||
public IState<Customer> UpsetState { get; private set; }
|
||||
public IState<Customer> VomitState { get; private set; }
|
||||
public StateMachineController<Customer> StateMachineController { get; private set; }
|
||||
public IStateMachine<Customer> IdleState { get; private set; }
|
||||
public IStateMachine<Customer> WalkingState { get; private set; }
|
||||
public IStateMachine<Customer> HappyState { get; private set; }
|
||||
public IStateMachine<Customer> UpsetState { get; private set; }
|
||||
public IStateMachine<Customer> 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<Customer>(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<Customer> 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
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public class HappyState : IState<Customer>
|
||||
public class HappyStateMachine : IStateMachine<Customer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public class IdleState : IState<Customer>
|
||||
public class IdleStateMachine : IStateMachine<Customer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public class UpsetState : IState<Customer>
|
||||
public class UpsetStateMachine : IStateMachine<Customer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public class VomitState : IState<Customer>
|
||||
public class VomitStateMachine : IStateMachine<Customer>
|
||||
{
|
||||
private bool _isVomiting;
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public class WalkingState : IState<Customer>
|
||||
public class WalkingStateMachine : IStateMachine<Customer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class CleaningFloorState : IState<TycoonPlayer>
|
||||
public class CleaningFloorStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class CleaningTableState : IState<TycoonPlayer>
|
||||
public class CleaningTableStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class IdleState : IState<TycoonPlayer>
|
||||
public class IdleStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class MakingCocktailState : IState<TycoonPlayer>
|
||||
public class MakingCocktailStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class ServingIdleState : IState<TycoonPlayer>
|
||||
public class ServingIdleStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class ServingState : IState<TycoonPlayer>
|
||||
public class ServingStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
public class WalkingState : IState<TycoonPlayer>
|
||||
public class WalkingStateMachine : IStateMachine<TycoonPlayer>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,7 +106,9 @@ namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
if (context.performed)
|
||||
{
|
||||
DataManager.Instance.TestData();
|
||||
EventManager.InvokeCreateServerCrew();
|
||||
EventManager.InvokeCreateCleanerCrew();
|
||||
EventManager.InvokeCreateBartenderCrew();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,14 +63,14 @@ namespace BlueWater.Players.Tycoons
|
||||
public bool IsMakingCocktail { get; set; }
|
||||
|
||||
// State
|
||||
public IState<TycoonPlayer> CurrentState { get; private set; }
|
||||
public IState<TycoonPlayer> IdleState { get; private set; }
|
||||
public IState<TycoonPlayer> WalkingState { get; private set; }
|
||||
public IState<TycoonPlayer> ServingIdleState { get; private set; }
|
||||
public IState<TycoonPlayer> ServingState { get; private set; }
|
||||
public IState<TycoonPlayer> CleaningFloorState { get; private set; }
|
||||
public IState<TycoonPlayer> CleaningTableState { get; private set; }
|
||||
public IState<TycoonPlayer> MakingCocktailState { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> CurrentStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> IdleStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> WalkingStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> ServingIdleStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> ServingStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> CleaningFloorStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> CleaningTableStateMachine { get; private set; }
|
||||
public IStateMachine<TycoonPlayer> 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<TycoonPlayer> newState)
|
||||
public void TransitionToState(IStateMachine<TycoonPlayer> newStateMachine)
|
||||
{
|
||||
CurrentState.ExitState(this);
|
||||
CurrentState = newState;
|
||||
CurrentState.EnterState(this);
|
||||
CurrentStateMachine.ExitState(this);
|
||||
CurrentStateMachine = newStateMachine;
|
||||
CurrentStateMachine.EnterState(this);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -28,10 +28,5 @@ namespace BlueWater
|
||||
[field: Title("타이쿤 데이터")]
|
||||
[field: SerializeField]
|
||||
public TycoonData TycoonData { get; private set; }
|
||||
|
||||
public void TestData()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace BlueWater.Interfaces
|
||||
{
|
||||
public interface IState<T> where T : MonoBehaviour
|
||||
public interface IStateMachine<T> where T : MonoBehaviour
|
||||
{
|
||||
void EnterState(T character);
|
||||
void UpdateState(T character);
|
@ -23,58 +23,49 @@ 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; }
|
||||
|
||||
public List<CocktailIngredient> ValidIngredients { get; set; } = new(5);
|
||||
|
||||
public List<CocktailIngredient> GetValidIngredients()
|
||||
public List<CocktailIngredient> GetValidIngredients(int liquidMaxAmount)
|
||||
{
|
||||
var ingredients = new List<CocktailIngredient>(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 int GetCocktailAmount(List<CocktailIngredient> cocktailIngredients)
|
||||
{
|
||||
var amount = 0;
|
||||
foreach (var element in cocktailIngredients)
|
||||
{
|
||||
amount += element.Amount;
|
||||
}
|
||||
|
||||
return amount;
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,15 @@ namespace BlueWater.Items
|
||||
[CreateAssetMenu(fileName = "CocktailDataTable", menuName = "ScriptableObjects/CocktailDataTable")]
|
||||
public class CocktailDataSo : DataSo<CocktailData>
|
||||
{
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
|
||||
var maxLiquidAmount = FindAnyObjectByType<LiquidController>().GetMaxLiquidCount();
|
||||
foreach (var element in _datas.Values)
|
||||
{
|
||||
element.ValidIngredients = element.GetValidIngredients(maxLiquidAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -6,12 +6,20 @@ namespace BlueWater.Items
|
||||
public class CocktailIngredient
|
||||
{
|
||||
public string Idx { get; set; }
|
||||
public int Ratio { get; set; }
|
||||
public int Amount { get; set; }
|
||||
|
||||
|
||||
public CocktailIngredient(string idx, int amount)
|
||||
{
|
||||
Idx = idx;
|
||||
Amount = amount;
|
||||
}
|
||||
|
||||
public CocktailIngredient(string idx, int ratio, int amount)
|
||||
{
|
||||
Idx = idx;
|
||||
Ratio = ratio;
|
||||
Amount = amount;
|
||||
}
|
||||
}
|
||||
}
|
@ -12,7 +12,7 @@ namespace BlueWater.Items
|
||||
|
||||
protected Dictionary<string, T> _datas;
|
||||
|
||||
private void OnEnable()
|
||||
protected virtual void OnEnable()
|
||||
{
|
||||
InitializeDictionary();
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -19,15 +19,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uC4F0\uB808\uAE30"
|
||||
<RatioRange>k__BackingField: 0
|
||||
<IngredientIdx1>k__BackingField:
|
||||
<IngredientAmount1>k__BackingField: 0
|
||||
<IngredientRatio1>k__BackingField: 0
|
||||
<IngredientIdx2>k__BackingField:
|
||||
<IngredientAmount2>k__BackingField: 0
|
||||
<IngredientRatio2>k__BackingField: 0
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 7f08919123d8bb84194bd4be22c0dee8, type: 3}
|
||||
- <Key>k__BackingField: Cocktail001
|
||||
<Value>k__BackingField:
|
||||
@ -35,15 +35,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CA"
|
||||
<RatioRange>k__BackingField: 0
|
||||
<IngredientIdx1>k__BackingField: LiquidA
|
||||
<IngredientAmount1>k__BackingField: 400
|
||||
<IngredientRatio1>k__BackingField: 100
|
||||
<IngredientIdx2>k__BackingField:
|
||||
<IngredientAmount2>k__BackingField: 0
|
||||
<IngredientRatio2>k__BackingField: 0
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 0cf23778fd0b2994c9d608fbbf185468, type: 3}
|
||||
- <Key>k__BackingField: Cocktail002
|
||||
<Value>k__BackingField:
|
||||
@ -51,15 +51,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CB"
|
||||
<RatioRange>k__BackingField: 0
|
||||
<IngredientIdx1>k__BackingField: LiquidB
|
||||
<IngredientAmount1>k__BackingField: 400
|
||||
<IngredientRatio1>k__BackingField: 100
|
||||
<IngredientIdx2>k__BackingField:
|
||||
<IngredientAmount2>k__BackingField: 0
|
||||
<IngredientRatio2>k__BackingField: 0
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 600806d36167cb140aa40eb51cf58afa, type: 3}
|
||||
- <Key>k__BackingField: Cocktail003
|
||||
<Value>k__BackingField:
|
||||
@ -67,15 +67,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CC"
|
||||
<RatioRange>k__BackingField: 0
|
||||
<IngredientIdx1>k__BackingField: LiquidC
|
||||
<IngredientAmount1>k__BackingField: 400
|
||||
<IngredientRatio1>k__BackingField: 100
|
||||
<IngredientIdx2>k__BackingField:
|
||||
<IngredientAmount2>k__BackingField: 0
|
||||
<IngredientRatio2>k__BackingField: 0
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: c55f4b0a55a391d488e54a28dc840509, type: 3}
|
||||
- <Key>k__BackingField: Cocktail004
|
||||
<Value>k__BackingField:
|
||||
@ -83,15 +83,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CD"
|
||||
<RatioRange>k__BackingField: 0
|
||||
<IngredientIdx1>k__BackingField: LiquidD
|
||||
<IngredientAmount1>k__BackingField: 400
|
||||
<IngredientRatio1>k__BackingField: 100
|
||||
<IngredientIdx2>k__BackingField:
|
||||
<IngredientAmount2>k__BackingField: 0
|
||||
<IngredientRatio2>k__BackingField: 0
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 576d6ff3856f8ef419586ff12f2742b5, type: 3}
|
||||
- <Key>k__BackingField: Cocktail005
|
||||
<Value>k__BackingField:
|
||||
@ -99,15 +99,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CE"
|
||||
<RatioRange>k__BackingField: 0
|
||||
<IngredientIdx1>k__BackingField: LiquidE
|
||||
<IngredientAmount1>k__BackingField: 400
|
||||
<IngredientRatio1>k__BackingField: 100
|
||||
<IngredientIdx2>k__BackingField:
|
||||
<IngredientAmount2>k__BackingField: 0
|
||||
<IngredientRatio2>k__BackingField: 0
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 527440f24542af142a67219f2bcbeec4, type: 3}
|
||||
- <Key>k__BackingField: Cocktail006
|
||||
<Value>k__BackingField:
|
||||
@ -115,15 +115,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CAC"
|
||||
<RatioRange>k__BackingField: 5
|
||||
<IngredientIdx1>k__BackingField: LiquidA
|
||||
<IngredientAmount1>k__BackingField: 200
|
||||
<IngredientRatio1>k__BackingField: 50
|
||||
<IngredientIdx2>k__BackingField: LiquidC
|
||||
<IngredientAmount2>k__BackingField: 200
|
||||
<IngredientRatio2>k__BackingField: 50
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 6a4cd8cdf11fe024e8ecac8e3d60e10d, type: 3}
|
||||
- <Key>k__BackingField: Cocktail007
|
||||
<Value>k__BackingField:
|
||||
@ -131,15 +131,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CBD"
|
||||
<RatioRange>k__BackingField: 5
|
||||
<IngredientIdx1>k__BackingField: LiquidB
|
||||
<IngredientAmount1>k__BackingField: 200
|
||||
<IngredientRatio1>k__BackingField: 50
|
||||
<IngredientIdx2>k__BackingField: LiquidD
|
||||
<IngredientAmount2>k__BackingField: 200
|
||||
<IngredientRatio2>k__BackingField: 50
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: b38089ff4046ac044ba79dfa5116aa1b, type: 3}
|
||||
- <Key>k__BackingField: Cocktail008
|
||||
<Value>k__BackingField:
|
||||
@ -147,15 +147,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CCD"
|
||||
<RatioRange>k__BackingField: 5
|
||||
<IngredientIdx1>k__BackingField: LiquidC
|
||||
<IngredientAmount1>k__BackingField: 200
|
||||
<IngredientRatio1>k__BackingField: 50
|
||||
<IngredientIdx2>k__BackingField: LiquidD
|
||||
<IngredientAmount2>k__BackingField: 200
|
||||
<IngredientRatio2>k__BackingField: 50
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 71954183dfb02424d835d964c2eb3fc6, type: 3}
|
||||
- <Key>k__BackingField: Cocktail009
|
||||
<Value>k__BackingField:
|
||||
@ -163,15 +163,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CABE"
|
||||
<RatioRange>k__BackingField: 10
|
||||
<IngredientIdx1>k__BackingField: LiquidA
|
||||
<IngredientAmount1>k__BackingField: 100
|
||||
<IngredientRatio1>k__BackingField: 25
|
||||
<IngredientIdx2>k__BackingField: LiquidB
|
||||
<IngredientAmount2>k__BackingField: 100
|
||||
<IngredientRatio2>k__BackingField: 25
|
||||
<IngredientIdx3>k__BackingField: LiquidE
|
||||
<IngredientAmount3>k__BackingField: 200
|
||||
<IngredientRatio3>k__BackingField: 50
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: d0748411047fc4a41beb1fb8d551e01e, type: 3}
|
||||
- <Key>k__BackingField: Cocktail010
|
||||
<Value>k__BackingField:
|
||||
@ -179,15 +179,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CCDE"
|
||||
<RatioRange>k__BackingField: 10
|
||||
<IngredientIdx1>k__BackingField: LiquidC
|
||||
<IngredientAmount1>k__BackingField: 100
|
||||
<IngredientRatio1>k__BackingField: 25
|
||||
<IngredientIdx2>k__BackingField: LiquidD
|
||||
<IngredientAmount2>k__BackingField: 100
|
||||
<IngredientRatio2>k__BackingField: 25
|
||||
<IngredientIdx3>k__BackingField: LiquidE
|
||||
<IngredientAmount3>k__BackingField: 200
|
||||
<IngredientRatio3>k__BackingField: 100
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 335f1df58cd58914f97fe9ccae7f6c8c, type: 3}
|
||||
- <Key>k__BackingField: Cocktail011
|
||||
<Value>k__BackingField:
|
||||
@ -195,15 +195,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CB1"
|
||||
<RatioRange>k__BackingField: 10
|
||||
<IngredientIdx1>k__BackingField: LiquidB
|
||||
<IngredientAmount1>k__BackingField: 320
|
||||
<IngredientRatio1>k__BackingField: 80
|
||||
<IngredientIdx2>k__BackingField: Garnish1
|
||||
<IngredientAmount2>k__BackingField: 80
|
||||
<IngredientRatio2>k__BackingField: 20
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 600806d36167cb140aa40eb51cf58afa, type: 3}
|
||||
- <Key>k__BackingField: Cocktail012
|
||||
<Value>k__BackingField:
|
||||
@ -211,15 +211,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CD1"
|
||||
<RatioRange>k__BackingField: 10
|
||||
<IngredientIdx1>k__BackingField: LiquidD
|
||||
<IngredientAmount1>k__BackingField: 320
|
||||
<IngredientRatio1>k__BackingField: 80
|
||||
<IngredientIdx2>k__BackingField: Garnish1
|
||||
<IngredientAmount2>k__BackingField: 80
|
||||
<IngredientRatio2>k__BackingField: 20
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: ee344f47787d148448bd3373235281b6, type: 3}
|
||||
- <Key>k__BackingField: Cocktail013
|
||||
<Value>k__BackingField:
|
||||
@ -227,15 +227,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CA2"
|
||||
<RatioRange>k__BackingField: 5
|
||||
<IngredientIdx1>k__BackingField: LiquidA
|
||||
<IngredientAmount1>k__BackingField: 360
|
||||
<IngredientRatio1>k__BackingField: 90
|
||||
<IngredientIdx2>k__BackingField: Garnish2
|
||||
<IngredientAmount2>k__BackingField: 40
|
||||
<IngredientRatio2>k__BackingField: 10
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: aef7fd596cbfc854d87f408c14951641, type: 3}
|
||||
- <Key>k__BackingField: Cocktail014
|
||||
<Value>k__BackingField:
|
||||
@ -243,15 +243,15 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CC2"
|
||||
<RatioRange>k__BackingField: 5
|
||||
<IngredientIdx1>k__BackingField: LiquidC
|
||||
<IngredientAmount1>k__BackingField: 360
|
||||
<IngredientRatio1>k__BackingField: 90
|
||||
<IngredientIdx2>k__BackingField: Garnish2
|
||||
<IngredientAmount2>k__BackingField: 40
|
||||
<IngredientRatio2>k__BackingField: 10
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 91d99e534e5f3c04094b14ed920bec04, type: 3}
|
||||
- <Key>k__BackingField: Cocktail015
|
||||
<Value>k__BackingField:
|
||||
@ -259,13 +259,13 @@ MonoBehaviour:
|
||||
<Name>k__BackingField: "\uCE75\uD14C\uC77CE2"
|
||||
<RatioRange>k__BackingField: 5
|
||||
<IngredientIdx1>k__BackingField: LiquidE
|
||||
<IngredientAmount1>k__BackingField: 360
|
||||
<IngredientRatio1>k__BackingField: 90
|
||||
<IngredientIdx2>k__BackingField: Garnish2
|
||||
<IngredientAmount2>k__BackingField: 40
|
||||
<IngredientRatio2>k__BackingField: 10
|
||||
<IngredientIdx3>k__BackingField:
|
||||
<IngredientAmount3>k__BackingField: 0
|
||||
<IngredientRatio3>k__BackingField: 0
|
||||
<IngredientIdx4>k__BackingField:
|
||||
<IngredientAmount4>k__BackingField: 0
|
||||
<IngredientRatio4>k__BackingField: 0
|
||||
<IngredientIdx5>k__BackingField:
|
||||
<IngredientAmount5>k__BackingField: 0
|
||||
<IngredientRatio5>k__BackingField: 0
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 527440f24542af142a67219f2bcbeec4, type: 3}
|
||||
|
@ -13,7 +13,7 @@ MonoBehaviour:
|
||||
m_Name: StageData
|
||||
m_EditorClassIdentifier:
|
||||
<WaitTimeInStarted>k__BackingField: 5
|
||||
<VomitingPercent>k__BackingField: 100
|
||||
<VomitingPercent>k__BackingField: 10
|
||||
<VomitingWaitTime>k__BackingField: 30
|
||||
<DirtyTablePercent>k__BackingField: 100
|
||||
<DirtyTablePercent>k__BackingField: 20
|
||||
<DirtyTableWaitTime>k__BackingField: 30
|
||||
|
28
Assets/02.Scripts/StateMachineController.cs
Normal file
28
Assets/02.Scripts/StateMachineController.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using BlueWater.Interfaces;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater
|
||||
{
|
||||
public class StateMachineController<T> where T : MonoBehaviour
|
||||
{
|
||||
private IStateMachine<T> _currentState;
|
||||
|
||||
public StateMachineController(T character, IStateMachine<T> startState)
|
||||
{
|
||||
_currentState = startState;
|
||||
_currentState.EnterState(character);
|
||||
}
|
||||
|
||||
public void UpdateState(T character)
|
||||
{
|
||||
_currentState.UpdateState(character);
|
||||
}
|
||||
|
||||
public void TransitionToState(IStateMachine<T> newState, T character)
|
||||
{
|
||||
_currentState.ExitState(character);
|
||||
_currentState = newState;
|
||||
_currentState.EnterState(character);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/02.Scripts/StateMachineController.cs.meta
Normal file
2
Assets/02.Scripts/StateMachineController.cs.meta
Normal file
@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd7c16a583bfb8d4b91efffa6a51696d
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
@ -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))
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
<InteractionRadius>k__BackingField: 0.7
|
||||
<InteractionMessage>k__BackingField:
|
||||
IsOpened: 0
|
||||
_cocktailGlassImage: {fileID: 535721072425912087}
|
||||
CocktailGlassImage: {fileID: 535721072425912087}
|
||||
--- !u!4 &5927803667513949971 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 4011269187381704965, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||
|
@ -207,7 +207,7 @@ MonoBehaviour:
|
||||
<InteractionCanvas>k__BackingField: {fileID: 0}
|
||||
<OutlineMaterial>k__BackingField: {fileID: 2100000, guid: 9db92b3ac1f276e42ae7d7bcfbbca549, type: 2}
|
||||
<EnableInteraction>k__BackingField: 1
|
||||
<InteractionRadius>k__BackingField: 0.3
|
||||
<InteractionRadius>k__BackingField: 0.5
|
||||
<InteractionMessage>k__BackingField: "\uCE58\uC6B0\uAE30"
|
||||
IsOpened: 0
|
||||
_interactionHoldingTime: 3
|
||||
|
26
Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt
Normal file
26
Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt
Normal file
@ -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
|
7
Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt.meta
Normal file
7
Assets/08.Spines/Uis/Chain/BillgeRope.atlas.txt.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e766c251b86f5284289007c365c5711c
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/08.Spines/Uis/Chain/BillgeRope.png
Normal file
BIN
Assets/08.Spines/Uis/Chain/BillgeRope.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 627 KiB |
143
Assets/08.Spines/Uis/Chain/BillgeRope.png.meta
Normal file
143
Assets/08.Spines/Uis/Chain/BillgeRope.png.meta
Normal file
@ -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:
|
BIN
Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes
Normal file
BIN
Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes
Normal file
Binary file not shown.
7
Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes.meta
Normal file
7
Assets/08.Spines/Uis/Chain/BillgeRope.skel.bytes.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0db0e54162d09e4418b99615e805310f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
19
Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset
Normal file
19
Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset
Normal file
@ -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}
|
8
Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset.meta
Normal file
8
Assets/08.Spines/Uis/Chain/BillgeRope_Atlas.asset.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9691d92a66d3a314ebe276a89b16a278
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
46
Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat
Normal file
46
Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat
Normal file
@ -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
|
8
Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat.meta
Normal file
8
Assets/08.Spines/Uis/Chain/BillgeRope_Material.mat.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b5a894fc9a151b344a9c895424eeb9c3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
31
Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset
Normal file
31
Assets/08.Spines/Uis/Chain/BillgeRope_SkeletonData.asset
Normal file
@ -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}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user