술 제조 작업 중2

This commit is contained in:
NTG_Lenovo 2024-09-10 19:25:05 +09:00
parent 9be98366fa
commit a5b460bfe0
40 changed files with 653 additions and 256 deletions

View File

@ -118,6 +118,142 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &321671
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 321672}
- component: {fileID: 321674}
- component: {fileID: 321673}
m_Layer: 5
m_Name: CompleteText
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &321672
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 321671}
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: 1795654740}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 8}
m_SizeDelta: {x: 0, y: 10}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &321673
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 321671}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uC131\uACF5!\n\uB9DD\uB839 \uB9E5\uC8FC"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: dabfdeb80b25d44b4ace56414d0eb4ad, type: 2}
m_sharedMaterial: {fileID: 2100000, guid: 0e5360dce269ccc42b822a424d66fbd4, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4278255615
m_fontColor: {r: 1, g: 1, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 3
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 1
m_fontSizeMax: 3
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 0
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!222 &321674
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 321671}
m_CullTransparentMesh: 1
--- !u!1 &4966468 --- !u!1 &4966468
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1129,7 +1265,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -13 value: -9.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
@ -1137,7 +1273,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 4.47 value: -1.5900002
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -2423,7 +2559,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -14 value: -10.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
@ -2431,7 +2567,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 4.47 value: -1.5900002
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -2578,7 +2714,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 218784750} - component: {fileID: 218784750}
m_Layer: 0 m_Layer: 0
m_Name: Instances m_Name: LiquidInstances
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -2593,11 +2729,11 @@ Transform:
m_GameObject: {fileID: 218784749} m_GameObject: {fileID: 218784749}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 150, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 1247057679}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &230908402 --- !u!1 &230908402
GameObject: GameObject:
@ -3047,6 +3183,42 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 5685570007726524012, guid: 7e6ba4001b3b92a4d8fdd586f6d0f731, type: 3} m_CorrespondingSourceObject: {fileID: 5685570007726524012, guid: 7e6ba4001b3b92a4d8fdd586f6d0f731, type: 3}
m_PrefabInstance: {fileID: 278514937} m_PrefabInstance: {fileID: 278514937}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1 &282398543
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 282398544}
m_Layer: 5
m_Name: PouringPanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &282398544
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 282398543}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 963867003}
m_Father: {fileID: 1172519049}
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!1001 &308211526 --- !u!1001 &308211526
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -5213,7 +5385,7 @@ Transform:
m_GameObject: {fileID: 545850347} m_GameObject: {fileID: 545850347}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927} m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: -4.78, y: 12.855751, z: -20.08089} m_LocalPosition: {x: -4.78, y: 9.641813, z: -16.250668}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
@ -5308,7 +5480,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 886251e9a18ece04ea8e61686c173e1b, type: 3} m_Script: {fileID: 11500000, guid: 886251e9a18ece04ea8e61686c173e1b, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
CameraDistance: 20 CameraDistance: 15
DeadZoneDepth: 0 DeadZoneDepth: 0
Composition: Composition:
ScreenPosition: {x: 0, y: 0} ScreenPosition: {x: 0, y: 0}
@ -6696,7 +6868,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -15 value: -11.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
@ -6704,7 +6876,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 4.47 value: -1.5900002
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -7665,7 +7837,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -12 value: -8.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
@ -7673,7 +7845,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 4.47 value: -1.5900002
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -8525,7 +8697,7 @@ Transform:
m_GameObject: {fileID: 873223985} m_GameObject: {fileID: 873223985}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927} m_LocalRotation: {x: 0.3420201, y: 0, z: 0, w: 0.9396927}
m_LocalPosition: {x: -4.78, y: 12.855751, z: -20.08089} m_LocalPosition: {x: -4.78, y: 9.641813, z: -16.250668}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
@ -8836,12 +9008,12 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963867002} m_GameObject: {fileID: 963867002}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1172519049} m_Father: {fileID: 282398544}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0}
@ -8895,12 +9067,12 @@ MonoBehaviour:
m_faceColor: m_faceColor:
serializedVersion: 2 serializedVersion: 2
rgba: 4294967295 rgba: 4294967295
m_fontSize: 3.45 m_fontSize: 3
m_fontSizeBase: 36 m_fontSizeBase: 36
m_fontWeight: 400 m_fontWeight: 400
m_enableAutoSizing: 1 m_enableAutoSizing: 1
m_fontSizeMin: 1 m_fontSizeMin: 1
m_fontSizeMax: 10 m_fontSizeMax: 3
m_fontStyle: 0 m_fontStyle: 0
m_HorizontalAlignment: 2 m_HorizontalAlignment: 2
m_VerticalAlignment: 512 m_VerticalAlignment: 512
@ -9311,16 +9483,18 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
_liquidPanel: {fileID: 1247057678} _liquidPanel: {fileID: 1247057678}
_shaker: {fileID: 1321215892}
_renderTexture: {fileID: 2105041734} _renderTexture: {fileID: 2105041734}
_liquidRenderer: {fileID: 1947402520} _liquidRenderer: {fileID: 1947402520}
_reachedCollider: {fileID: 2070548849} _reachedCollider: {fileID: 2070548849}
_amountText: {fileID: 963867004} _amountText: {fileID: 963867004}
_completeCocktailImage: {fileID: 1821459832}
_completeText: {fileID: 321673}
_spawnTransform: {fileID: 970735072} _spawnTransform: {fileID: 970735072}
_spawnLocation: {fileID: 218784750} _spawnLocation: {fileID: 218784750}
_pushDirection: {x: -5, y: -1, z: 0} _pushDirection: {x: -5, y: -1, z: 0}
_pushPower: 50 _pushPower: 50
_liquidObject: {fileID: -7612237390858616641, guid: 231c2f369e2946745a955eb49243702b, type: 3} _liquidObject: {fileID: -7612237390858616641, guid: 231c2f369e2946745a955eb49243702b, type: 3}
_liquidColor: {r: 1, g: 0.8431373, b: 0, a: 1}
_liquidsPerSecond: 80 _liquidsPerSecond: 80
_maxLiquidCount: 400 _maxLiquidCount: 400
_colorLerpSpeed: 0.5 _colorLerpSpeed: 0.5
@ -10952,7 +11126,8 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 963867003} - {fileID: 282398544}
- {fileID: 1795654740}
m_Father: {fileID: 1730992467} m_Father: {fileID: 1730992467}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
@ -11699,6 +11874,7 @@ Transform:
- {fileID: 2070548848} - {fileID: 2070548848}
- {fileID: 970735072} - {fileID: 970735072}
- {fileID: 1730992467} - {fileID: 1730992467}
- {fileID: 218784750}
m_Father: {fileID: 1006730365} m_Father: {fileID: 1006730365}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1256380695 --- !u!1 &1256380695
@ -14098,7 +14274,7 @@ Transform:
m_GameObject: {fileID: 1400792457} m_GameObject: {fileID: 1400792457}
serializedVersion: 2 serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -13.61, y: 0, z: 3.6} m_LocalPosition: {x: -10.25, y: 0, z: -1.52}
m_LocalScale: {x: 10, y: 2, z: 5} m_LocalScale: {x: 10, y: 2, z: 5}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
@ -16711,6 +16887,7 @@ MonoBehaviour:
<CustomerTableController>k__BackingField: {fileID: 1665075870} <CustomerTableController>k__BackingField: {fileID: 1665075870}
<TycoonStageController>k__BackingField: {fileID: 1665075872} <TycoonStageController>k__BackingField: {fileID: 1665075872}
_dailyBgm: TycoonDailyBgm1 _dailyBgm: TycoonDailyBgm1
_levelDataSo: {fileID: 11400000, guid: 702b1ed0ce71d1b4aa1ddbce67e475a1, type: 2}
--- !u!114 &1665075870 --- !u!114 &1665075870
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -18679,6 +18856,43 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1786369329} m_GameObject: {fileID: 1786369329}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1795654739
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1795654740}
m_Layer: 5
m_Name: CompletePanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1795654740
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1795654739}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1821459831}
- {fileID: 321672}
m_Father: {fileID: 1172519049}
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!1 &1795712517 --- !u!1 &1795712517
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -19042,6 +19256,81 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_HorizontalFit: 2 m_HorizontalFit: 2
m_VerticalFit: 2 m_VerticalFit: 2
--- !u!1 &1821459830
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1821459831}
- component: {fileID: 1821459833}
- component: {fileID: 1821459832}
m_Layer: 5
m_Name: CompleteCocktailImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1821459831
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1821459830}
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: 1795654740}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0, y: -25}
m_SizeDelta: {x: 25, y: 25}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1821459832
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1821459830}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1821459833
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1821459830}
m_CullTransparentMesh: 1
--- !u!1 &1834176991 --- !u!1 &1834176991
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -20113,7 +20402,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -16 value: -12.5
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
@ -20121,7 +20410,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z
value: 4.47 value: -1.59
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3} - target: {fileID: 809828747251277026, guid: 7cb398d57f4c7ff468b50dbf1d226ca5, type: 3}
propertyPath: m_LocalRotation.w propertyPath: m_LocalRotation.w
@ -24515,4 +24804,3 @@ SceneRoots:
- {fileID: 828349206} - {fileID: 828349206}
- {fileID: 1006730365} - {fileID: 1006730365}
- {fileID: 20736010} - {fileID: 20736010}
- {fileID: 218784750}

View File

@ -14,7 +14,7 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
private Customer _customer; private Customer _customer;
private CustomerData _customerData; private CustomerData _customerData;
private FoodBalloonUi _foodBalloonUi; private BalloonUi _balloonUi;
public override void OnAwake() public override void OnAwake()
{ {
@ -24,9 +24,9 @@ namespace BlueWater.BehaviorTrees.Actions
public override void OnStart() public override void OnStart()
{ {
_foodBalloonUi = _customer.FoodBalloonUi; _balloonUi = _customer.BalloonUi;
// TODO : 음료가 다양해질 때 수정해야함 // TODO : 음료가 다양해질 때 수정해야함
_foodBalloonUi.OrderFood("40001", _customerData.WaitTime, _customerData.HurryTime); _balloonUi.OrderItem("40001", _customerData.WaitTime, _customerData.HurryTime);
_customer.OnInteraction += HandleBeverageInteraction; _customer.OnInteraction += HandleBeverageInteraction;
_customer.RegisterPlayerInteraction(); _customer.RegisterPlayerInteraction();
@ -35,21 +35,21 @@ namespace BlueWater.BehaviorTrees.Actions
public override TaskStatus OnUpdate() public override TaskStatus OnUpdate()
{ {
if (_foodBalloonUi.IsFoodReceive()) if (_balloonUi.IsFoodReceive())
{ {
_customer.OnInteraction -= HandleBeverageInteraction; _customer.OnInteraction -= HandleBeverageInteraction;
_customer.UnregisterPlayerInteraction(); _customer.UnregisterPlayerInteraction();
return TaskStatus.Success; return TaskStatus.Success;
} }
if (_foodBalloonUi.IsWaitTimeOver()) if (_balloonUi.IsWaitTimeOver())
{ {
_customer.OnInteraction -= HandleBeverageInteraction; _customer.OnInteraction -= HandleBeverageInteraction;
_customer.UnregisterPlayerInteraction(); _customer.UnregisterPlayerInteraction();
_customer.AddHappyPoint(-3); _customer.AddHappyPoint(-3);
if (_customer.HappyPoint <= 0) if (_customer.HappyPoint <= 0)
{ {
_foodBalloonUi.CancelOrder(); _balloonUi.CancelOrder();
var barkName = _customer.HappyPoint switch var barkName = _customer.HappyPoint switch
{ {
>= 3 => "SatisfactoryEvaluation", >= 3 => "SatisfactoryEvaluation",
@ -79,9 +79,10 @@ namespace BlueWater.BehaviorTrees.Actions
if (carriedBeverageData.Idx == "40001") if (carriedBeverageData.Idx == "40001")
{ {
tycoonPlayer.GiveItem(); tycoonPlayer.GiveItem();
_foodBalloonUi.ReceiveFood(); _balloonUi.ReceiveFood();
_customer.SetFood(carriedBeverageData); var itemData = ItemManager.Instance.GetItemDataByIdx(carriedBeverageData.Idx);
if (carriedBeverageData.Quality == ItemQuality.High) _customer.SetFood(itemData);
if (itemData.Quality == ItemQuality.High)
{ {
_customer.AddHappyPoint(1); _customer.AddHappyPoint(1);
} }

View File

@ -15,7 +15,7 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
private Customer _customer; private Customer _customer;
private CustomerData _customerData; private CustomerData _customerData;
private FoodBalloonUi _foodBalloonUi; private BalloonUi _balloonUi;
private string _orderFoodIdx; private string _orderFoodIdx;
public override void OnAwake() public override void OnAwake()
@ -28,8 +28,8 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
SetPreferredFoods(); SetPreferredFoods();
_foodBalloonUi = _customer.FoodBalloonUi; _balloonUi = _customer.BalloonUi;
_foodBalloonUi.OrderFood(_orderFoodIdx, _customerData.WaitTime, _customerData.HurryTime); _balloonUi.OrderItem(_orderFoodIdx, _customerData.WaitTime, _customerData.HurryTime);
_customer.OnInteraction += HandleFoodInteraction; _customer.OnInteraction += HandleFoodInteraction;
_customer.RegisterPlayerInteraction(); _customer.RegisterPlayerInteraction();
_customer.Bark("OrderFood", BarkOrder.FirstValid); _customer.Bark("OrderFood", BarkOrder.FirstValid);
@ -37,21 +37,21 @@ namespace BlueWater.BehaviorTrees.Actions
public override TaskStatus OnUpdate() public override TaskStatus OnUpdate()
{ {
if (_foodBalloonUi.IsFoodReceive()) if (_balloonUi.IsFoodReceive())
{ {
_customer.OnInteraction -= HandleFoodInteraction; _customer.OnInteraction -= HandleFoodInteraction;
_customer.UnregisterPlayerInteraction(); _customer.UnregisterPlayerInteraction();
return TaskStatus.Success; return TaskStatus.Success;
} }
if (_foodBalloonUi.IsWaitTimeOver()) if (_balloonUi.IsWaitTimeOver())
{ {
_customer.OnInteraction -= HandleFoodInteraction; _customer.OnInteraction -= HandleFoodInteraction;
_customer.UnregisterPlayerInteraction(); _customer.UnregisterPlayerInteraction();
_customer.AddHappyPoint(-3); _customer.AddHappyPoint(-3);
if (_customer.HappyPoint <= 0) if (_customer.HappyPoint <= 0)
{ {
_foodBalloonUi.CancelOrder(); _balloonUi.CancelOrder();
var barkName = _customer.HappyPoint switch var barkName = _customer.HappyPoint switch
{ {
>= 3 => "SatisfactoryEvaluation", >= 3 => "SatisfactoryEvaluation",
@ -80,9 +80,10 @@ namespace BlueWater.BehaviorTrees.Actions
if (carriedFoodData.Idx == _orderFoodIdx) if (carriedFoodData.Idx == _orderFoodIdx)
{ {
tycoonPlayer.GiveItem(); tycoonPlayer.GiveItem();
_foodBalloonUi.ReceiveFood(); _balloonUi.ReceiveFood();
_customer.SetFood(carriedFoodData); var itemData = ItemManager.Instance.GetItemDataByIdx(carriedFoodData.Idx);
if (carriedFoodData.Quality == ItemQuality.High) _customer.SetFood(itemData);
if (itemData.Quality == ItemQuality.High)
{ {
_customer.AddHappyPoint(1); _customer.AddHappyPoint(1);
} }

View File

@ -12,7 +12,7 @@ namespace BlueWater.BehaviorTrees.Actions
{ {
private Customer _customer; private Customer _customer;
private CustomerData _customerData; private CustomerData _customerData;
private FoodBalloonUi _foodBalloonUi; private BalloonUi _balloonUi;
private int _goldIdx; private int _goldIdx;
private bool _isPaidMoney; private bool _isPaidMoney;
@ -24,8 +24,8 @@ namespace BlueWater.BehaviorTrees.Actions
public override void OnStart() public override void OnStart()
{ {
_foodBalloonUi = _customer.FoodBalloonUi; _balloonUi = _customer.BalloonUi;
_foodBalloonUi.PayMoney(_customerData.WaitTime, _customerData.HurryTime); _balloonUi.PayMoney(_customerData.WaitTime, _customerData.HurryTime);
_customer.OnInteraction += HandlePayMoneyInteraction; _customer.OnInteraction += HandlePayMoneyInteraction;
_customer.RegisterPlayerInteraction(); _customer.RegisterPlayerInteraction();
} }
@ -37,12 +37,12 @@ namespace BlueWater.BehaviorTrees.Actions
return TaskStatus.Success; return TaskStatus.Success;
} }
if (_foodBalloonUi.IsWaitTimeOver()) if (_balloonUi.IsWaitTimeOver())
{ {
_customer.OnInteraction -= HandlePayMoneyInteraction; _customer.OnInteraction -= HandlePayMoneyInteraction;
_customer.UnregisterPlayerInteraction(); _customer.UnregisterPlayerInteraction();
_foodBalloonUi.CancelOrder(); _balloonUi.CancelOrder();
_foodBalloonUi.HideUi(); _balloonUi.HideUi();
// _customer.AddHappyPoint(-3); // _customer.AddHappyPoint(-3);
// if (_customer.HappyPoint <= 0) // if (_customer.HappyPoint <= 0)
// { // {
@ -85,11 +85,11 @@ namespace BlueWater.BehaviorTrees.Actions
var paidAmount = foodPrice + tipAmount; var paidAmount = foodPrice + tipAmount;
tycoonPlayer.GetMoney(paidAmount); tycoonPlayer.GetMoney(paidAmount);
_customer.PayMoney(foodPrice, tipAmount); _customer.PayMoney(foodPrice, tipAmount);
_foodBalloonUi.HideUi(); _balloonUi.HideUi();
_customer.OnInteraction -= HandlePayMoneyInteraction; _customer.OnInteraction -= HandlePayMoneyInteraction;
_customer.Bark(barkName, BarkOrder.FirstValid); _customer.Bark(barkName, BarkOrder.FirstValid);
_customer.UnregisterPlayerInteraction(); _customer.UnregisterPlayerInteraction();
_foodBalloonUi.CancelOrder(); _balloonUi.CancelOrder();
_isPaidMoney = true; _isPaidMoney = true;
} }

View File

@ -60,7 +60,7 @@ namespace BlueWater.Npcs.Customers
public Transform InteractionUi { get; private set; } public Transform InteractionUi { get; private set; }
[field: SerializeField] [field: SerializeField]
public FoodBalloonUi FoodBalloonUi { get; private set; } public BalloonUi BalloonUi { get; private set; }
[field: SerializeField] [field: SerializeField]
public PayMoneyUi PayMoneyUi { get; private set; } public PayMoneyUi PayMoneyUi { get; private set; }
@ -181,7 +181,7 @@ namespace BlueWater.Npcs.Customers
//InteractionCanvas.worldCamera = TycoonCameraManager.Instance.UiCamera; //InteractionCanvas.worldCamera = TycoonCameraManager.Instance.UiCamera;
InteractionUi = InteractionCanvas.transform.Find("InteractionUi"); InteractionUi = InteractionCanvas.transform.Find("InteractionUi");
InteractionUi.localScale = Vector3.one * (1 / transform.localScale.x); InteractionUi.localScale = Vector3.one * (1 / transform.localScale.x);
FoodBalloonUi = InteractionCanvas.transform.Find("FoodBalloonUi").GetComponent<FoodBalloonUi>(); BalloonUi = InteractionCanvas.transform.Find("FoodBalloonUi").GetComponent<BalloonUi>();
PayMoneyUi = InteractionCanvas.transform.Find("PayMoneyUi").GetComponent<PayMoneyUi>(); PayMoneyUi = InteractionCanvas.transform.Find("PayMoneyUi").GetComponent<PayMoneyUi>();
SpineController = GetComponent<SpineController>(); SpineController = GetComponent<SpineController>();
@ -231,7 +231,7 @@ namespace BlueWater.Npcs.Customers
public void SetTableSeat(TableSeat tableSeat) public void SetTableSeat(TableSeat tableSeat)
{ {
TableSeat = tableSeat; TableSeat = tableSeat;
FoodBalloonUi.Initialize(TableSeat); BalloonUi.Initialize(TableSeat);
} }
public void SetCurrentDirection(Vector3 normalDirection) => CurrentDirection = normalDirection; public void SetCurrentDirection(Vector3 normalDirection) => CurrentDirection = normalDirection;

View File

@ -1,4 +1,5 @@
using BlueWater.Items; using System;
using BlueWater.Interfaces;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
using UnityEngine; using UnityEngine;
@ -12,8 +13,7 @@ namespace BlueWater.Players.Tycoons
[SerializeField] [SerializeField]
private bool _isCarriedItem; private bool _isCarriedItem;
private ItemData _currentItemData; private IPickup _currentPickupItem;
private ItemManager _itemManager;
private void Awake() private void Awake()
{ {
@ -22,7 +22,14 @@ namespace BlueWater.Players.Tycoons
private void Start() private void Start()
{ {
_itemManager = ItemManager.Instance; TycoonEvents.OnCocktailCompleted += CarryItem;
TycoonEvents.OnCocktailDiscarded += DiscardItem;
}
private void OnDestroy()
{
TycoonEvents.OnCocktailCompleted -= CarryItem;
TycoonEvents.OnCocktailDiscarded -= DiscardItem;
} }
[Button("컴포넌트 초기화")] [Button("컴포넌트 초기화")]
@ -31,7 +38,7 @@ namespace BlueWater.Players.Tycoons
_itemRenderer = transform.Find("VisualLook/Item").GetComponent<SpriteRenderer>(); _itemRenderer = transform.Find("VisualLook/Item").GetComponent<SpriteRenderer>();
} }
public void CarryItem(string itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal) public void CarryItem(IPickup item)
{ {
if (_isCarriedItem) if (_isCarriedItem)
{ {
@ -39,56 +46,39 @@ namespace BlueWater.Players.Tycoons
return; return;
} }
_currentItemData = new ItemData(_itemManager.GetItemDataByIdx(itemIdx)) _currentPickupItem = item;
{ _itemRenderer.enabled = false;
Quality = itemQuality //_itemRenderer.sprite = item.Sprite;
};
if (_currentItemData == null)
{
Debug.LogError($"{itemIdx} 해당 아이템을 등록할 수 없습니다.");
return;
}
if (isUsingSprite)
{
var itemSprite = _currentItemData.Sprite;
if (!itemSprite)
{
Debug.LogWarning($"{itemSprite} 해당 아이템의 이미지가 없습니다.");
}
_itemRenderer.sprite = itemSprite;
}
_isCarriedItem = true; _isCarriedItem = true;
} }
public void GiveItem() public void GiveItem()
{ {
if (!_isCarriedItem || _currentItemData == null) if (!_isCarriedItem || _currentPickupItem == null)
{ {
Debug.Log("들고있는 아이템이 없거나, 현재 아이템 데이터가 비어있습니다."); Debug.Log("들고있는 아이템이 없거나, 현재 아이템 데이터가 비어있습니다.");
return; return;
} }
_currentItemData = null; _currentPickupItem = null;
_itemRenderer.sprite = null; _itemRenderer.sprite = null;
_isCarriedItem = false; _isCarriedItem = false;
} }
public void DiscardItem() public void DiscardItem()
{ {
if (!_isCarriedItem || _currentItemData == null) if (!_isCarriedItem || _currentPickupItem == null)
{ {
Debug.Log("들고있는 아이템이 없거나, 현재 아이템 데이터가 비어있습니다."); Debug.Log("들고있는 아이템이 없거나, 현재 아이템 데이터가 비어있습니다.");
return; return;
} }
_currentItemData = null; _currentPickupItem = null;
_itemRenderer.sprite = null; _itemRenderer.sprite = null;
_isCarriedItem = false; _isCarriedItem = false;
} }
public ItemData GetCurrentItemData() => _currentItemData; public IPickup GetCurrentPickupItem() => _currentPickupItem;
public bool IsCarriedItem() => _isCarriedItem; public bool IsCarriedItem() => _isCarriedItem;
} }
} }

View File

@ -1,3 +1,4 @@
using BlueWater.Interfaces;
using BlueWater.Items; using BlueWater.Items;
using BlueWater.Uis; using BlueWater.Uis;
using Sirenix.OdinInspector; using Sirenix.OdinInspector;
@ -42,7 +43,7 @@ namespace BlueWater.Players.Tycoons
public SkeletonAnimation SkeletonAnimation { get; private set; } public SkeletonAnimation SkeletonAnimation { get; private set; }
[field: SerializeField] [field: SerializeField]
public FoodBalloonUi FoodBalloonUi { get; private set; } public BalloonUi BalloonUi { get; private set; }
[field: SerializeField] [field: SerializeField]
public TycoonInput TycoonInput { get; private set; } public TycoonInput TycoonInput { get; private set; }
@ -92,7 +93,7 @@ namespace BlueWater.Players.Tycoons
PlayerInput = GetComponent<PlayerInput>(); PlayerInput = GetComponent<PlayerInput>();
VisualLook = transform.Find("VisualLook"); VisualLook = transform.Find("VisualLook");
SkeletonAnimation = VisualLook.GetComponent<SkeletonAnimation>(); SkeletonAnimation = VisualLook.GetComponent<SkeletonAnimation>();
FoodBalloonUi = transform.Find("Canvas/FoodBalloonUi").GetComponent<FoodBalloonUi>(); BalloonUi = transform.Find("Canvas/BalloonUi").GetComponent<BalloonUi>();
TycoonInput = GetComponent<TycoonInput>(); TycoonInput = GetComponent<TycoonInput>();
TycoonMovement = GetComponent<TycoonMovement>(); TycoonMovement = GetComponent<TycoonMovement>();
@ -125,30 +126,30 @@ namespace BlueWater.Players.Tycoons
public void GetMoney(int money) => DataManager.Instance.GetMoney(money); public void GetMoney(int money) => DataManager.Instance.GetMoney(money);
public bool IsCarriedItem() => TycoonCarryHandler.IsCarriedItem(); public bool IsCarriedItem() => TycoonCarryHandler.IsCarriedItem();
public void CarryItem(string itemIdx, bool isUsingSprite = true, ItemQuality itemQuality = ItemQuality.Normal) // public void CarryItem(IPickup item)
{ // {
TycoonCarryHandler.CarryItem(itemIdx, isUsingSprite, itemQuality); // TycoonCarryHandler.CarryItem(item);
if (!isUsingSprite) // // if (!isUsingSprite)
{ // // {
FoodBalloonUi.SetFoodImage(GetCurrentItemData().Idx); // // FoodBalloonUi.SetFoodImage(GetCurrentItemData().Idx);
FoodBalloonUi.ShowUi(); // // FoodBalloonUi.ShowUi();
} // // }
} // }
public void GiveItem() public void GiveItem()
{ {
TycoonCarryHandler.GiveItem(); TycoonCarryHandler.GiveItem();
FoodBalloonUi.HideUi(); BalloonUi.HideUi();
FoodBalloonUi.SetFoodImage(null); BalloonUi.SetItemImage(null);
} }
public void DiscardItem() // public void DiscardItem()
{ // {
TycoonCarryHandler.DiscardItem(); // TycoonCarryHandler.DiscardItem();
FoodBalloonUi.HideUi(); // BalloonUi.HideUi();
FoodBalloonUi.SetFoodImage(null); // BalloonUi.SetItemImage(null);
} // }
public ItemData GetCurrentItemData() => TycoonCarryHandler.GetCurrentItemData(); public IPickup GetCurrentItemData() => TycoonCarryHandler.GetCurrentPickupItem();
#endregion #endregion
} }

View File

@ -0,0 +1,7 @@
namespace BlueWater.Interfaces
{
public interface IPickup : IIdx, ISprite
{
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 93cc9ac7df9bd614d95805d0fdfcb2b6
timeCreated: 1716899052

View File

@ -0,0 +1,9 @@
using UnityEngine;
namespace BlueWater.Interfaces
{
public interface ISprite
{
Sprite Sprite { get; }
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 66904096aaaca614d88d13a6a40d42b5
timeCreated: 1716899052

View File

@ -7,7 +7,7 @@ using UnityEngine;
namespace BlueWater.Items namespace BlueWater.Items
{ {
[Serializable] [Serializable]
public class CocktailData : IIdx public class CocktailData : IPickup
{ {
[BoxGroup("Json 데이터 영역")] [BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]

View File

@ -35,7 +35,7 @@ namespace BlueWater.Items
} }
[Serializable] [Serializable]
public class ItemData : IIdx public class ItemData : IPickup
{ {
[BoxGroup("Json 데이터 영역")] [BoxGroup("Json 데이터 영역")]
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")] [field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]

View File

@ -1,3 +1,4 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using BlueWater.Items; using BlueWater.Items;
@ -7,7 +8,7 @@ using Sirenix.OdinInspector;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.Pool; using UnityEngine.Pool;
using UnityEngine.Serialization; using UnityEngine.UI;
namespace BlueWater namespace BlueWater
{ {
@ -19,6 +20,9 @@ namespace BlueWater
[SerializeField] [SerializeField]
private GameObject _liquidPanel; private GameObject _liquidPanel;
[SerializeField]
private GameObject _shaker;
[SerializeField] [SerializeField]
private Renderer _renderTexture; private Renderer _renderTexture;
@ -31,6 +35,12 @@ namespace BlueWater
[SerializeField] [SerializeField]
private TMP_Text _amountText; private TMP_Text _amountText;
[SerializeField]
private Image _completeCocktailImage;
[SerializeField]
private TMP_Text _completeText;
[Title("스폰 데이터")] [Title("스폰 데이터")]
[SerializeField, Required] [SerializeField, Required]
private Transform _spawnTransform; private Transform _spawnTransform;
@ -74,11 +84,12 @@ namespace BlueWater
private IObjectPool<Liquid> _objectPool; private IObjectPool<Liquid> _objectPool;
private List<Liquid> _activeLiquids = new(); private List<Liquid> _activeLiquids = new();
private Dictionary<LiquidData, int> _liquidDataCounts = new(); private Dictionary<LiquidData, int> _liquidDataCounts = new(7);
private Material _instanceMaterial; private Material _instanceMaterial;
private Tween _showTween; private Tween _showTween;
private Tween _hideTween; private Tween _hideTween;
private bool _isShowingPanel;
private bool _isPouring; private bool _isPouring;
private float _startTime = float.PositiveInfinity; private float _startTime = float.PositiveInfinity;
private int _instanceLiquidCount; private int _instanceLiquidCount;
@ -102,10 +113,10 @@ namespace BlueWater
{ {
_objectPool = new ObjectPool<Liquid>(CreateObject, OnGetObject, OnReleaseObject, OnDestroyObject, maxSize: _objectPoolCount); _objectPool = new ObjectPool<Liquid>(CreateObject, OnGetObject, OnReleaseObject, OnDestroyObject, maxSize: _objectPoolCount);
_hideTween = _liquidPanel.transform.DOMoveX(-150f, _moveDuration).From(-249f).Pause() _hideTween = _liquidPanel.transform.DOMoveX(-150f, _moveDuration).Pause()
.SetAutoKill(false); .SetAutoKill(false);
_showTween = _liquidPanel.transform.DOMoveX(-249f, _moveDuration).From(-150f).Pause() _showTween = _liquidPanel.transform.DOMoveX(-249f, _moveDuration).Pause()
.SetAutoKill(false); .SetAutoKill(false);
} }
@ -119,6 +130,10 @@ namespace BlueWater
_instanceMaterial.SetFloat(_liquidAmountHash, 0f); _instanceMaterial.SetFloat(_liquidAmountHash, 0f);
_timeInterval = 1f / _liquidsPerSecond; _timeInterval = 1f / _liquidsPerSecond;
_shaker.SetActive(true);
_amountText.enabled = true;
_completeCocktailImage.enabled = false;
_completeText.enabled = false;
_instanceLiquidCount = 0; _instanceLiquidCount = 0;
SetCurrentAmount(0f); SetCurrentAmount(0f);
} }
@ -137,7 +152,7 @@ namespace BlueWater
// 술이 완성되었을 때 // 술이 완성되었을 때
if (_instanceLiquidCount >= _maxLiquidCount) if (_instanceLiquidCount >= _maxLiquidCount)
{ {
CompleteLiquid(); StartCoroutine(nameof(CompleteCocktail));
return; return;
} }
@ -242,6 +257,10 @@ namespace BlueWater
{ {
if (_instanceLiquidCount == 0) if (_instanceLiquidCount == 0)
{ {
_shaker.SetActive(true);
_amountText.enabled = true;
_completeCocktailImage.enabled = false;
_completeText.enabled = false;
_currentMixedColor = _currentBarrel.GetLiquidData().Color; _currentMixedColor = _currentBarrel.GetLiquidData().Color;
_instanceMaterial.SetColor(_liquidColorHash, _currentMixedColor * _colorIntensity); _instanceMaterial.SetColor(_liquidColorHash, _currentMixedColor * _colorIntensity);
} }
@ -276,11 +295,13 @@ namespace BlueWater
/// <summary> /// <summary>
/// 술을 완성한 경우 /// 술을 완성한 경우
/// </summary> /// </summary>
private void CompleteLiquid() private IEnumerator CompleteCocktail()
{ {
InActiveIsPouring(); InActiveIsPouring();
// TODO : 완성된 음료를 데이터베이스와 비교하기
var currentCocktailIngredients = new List<CocktailIngredient>(5); yield return new WaitUntil(() => _currentLiquidAmount >= _maxLiquidCount);
var currentCocktailIngredients = new List<CocktailIngredient>(7);
foreach (var element in _liquidDataCounts) foreach (var element in _liquidDataCounts)
{ {
var idx = element.Key.Idx; var idx = element.Key.Idx;
@ -342,12 +363,26 @@ namespace BlueWater
if (matchingCocktail == null) if (matchingCocktail == null)
{ {
matchingCocktail = ItemManager.Instance.GetCocktailDataByIdx("Cocktail000"); matchingCocktail = ItemManager.Instance.GetCocktailDataByIdx("Cocktail000");
_completeText.text = "실패";
}
else
{
_completeText.text = $"성공!\n{matchingCocktail.Name}";
} }
Debug.Log($"{matchingCocktail.Idx} 음료 완성"); // TODO : 음료 제조 성공, 실패 연출 추가
_shaker.SetActive(false);
_amountText.enabled = false;
_completeCocktailImage.sprite = matchingCocktail.Sprite;
_completeCocktailImage.enabled = true;
_completeText.enabled = true;
// 1. 플레이어 음료 들기
TycoonEvents.OnCocktailCompleted?.Invoke(matchingCocktail);
// TODO : 플레이어 이벤트를 통해 음료 들기 yield return new WaitForSeconds(1f);
HidePanel();
} }
/// <summary> /// <summary>
@ -392,12 +427,18 @@ namespace BlueWater
public void ShowPanel() public void ShowPanel()
{ {
if (_isShowingPanel) return;
_isShowingPanel = true;
_hideTween.Pause(); _hideTween.Pause();
_showTween.Restart(); _showTween.Restart();
} }
public void HidePanel() public void HidePanel()
{ {
if (!_isShowingPanel) return;
_isShowingPanel = false;
_showTween.Pause(); _showTween.Pause();
_hideTween.Restart(); _hideTween.Restart();
} }

View File

@ -6,6 +6,8 @@ namespace BlueWater
{ {
private void OnTriggerEnter(Collider other) private void OnTriggerEnter(Collider other)
{ {
if (GameManager.Instance.CurrentTycoonPlayer.IsCarriedItem()) return;
TycoonEvents.OnLiquidRegionEntered?.Invoke(); TycoonEvents.OnLiquidRegionEntered?.Invoke();
} }

View File

@ -41,7 +41,7 @@ namespace BlueWater.Tycoons
/// </summary> /// </summary>
public override bool CanInteraction() public override bool CanInteraction()
{ {
return true; return !CurrentTycoonPlayer.IsCarriedItem();
} }
public bool CanConsume(int amount) public bool CanConsume(int amount)

View File

@ -1,21 +1,21 @@
using UnityEngine; // using UnityEngine;
//
namespace BlueWater.Tycoons // namespace BlueWater.Tycoons
{ // {
public class BeverageMachine : InteractionFurniture // public class BeverageMachine : InteractionFurniture
{ // {
[SerializeField] // [SerializeField]
private string _itemIdx = "40001"; // private string _itemIdx = "40001";
//
public override void Interaction() // public override void Interaction()
{ // {
// TODO : 미니게임을 시작하고, 성공 여부에 따라 음식 품질 부여 // // TODO : 미니게임을 시작하고, 성공 여부에 따라 음식 품질 부여
CurrentTycoonPlayer.CarryItem(_itemIdx); // CurrentTycoonPlayer.CarryItem(_itemIdx);
} // }
//
public override bool CanInteraction() // public override bool CanInteraction()
{ // {
return !CurrentTycoonPlayer.IsCarriedItem(); // return !CurrentTycoonPlayer.IsCarriedItem();
} // }
} // }
} // }

View File

@ -128,7 +128,7 @@ namespace BlueWater.Tycoons
else else
{ {
var foodData = _cookedFoodDatas.Dequeue(); var foodData = _cookedFoodDatas.Dequeue();
CurrentTycoonPlayer.CarryItem(foodData.Idx, false); //CurrentTycoonPlayer.CarryItem(foodData.Idx, false);
} }
} }

View File

@ -1,20 +1,20 @@
using UnityEngine; // using UnityEngine;
//
namespace BlueWater.Tycoons // namespace BlueWater.Tycoons
{ // {
public class FireWood : InteractionFurniture // public class FireWood : InteractionFurniture
{ // {
[SerializeField] // [SerializeField]
private string _itemIdx = "70001"; // private string _itemIdx = "70001";
//
public override void Interaction() // public override void Interaction()
{ // {
CurrentTycoonPlayer.CarryItem(_itemIdx); // CurrentTycoonPlayer.CarryItem(_itemIdx);
} // }
//
public override bool CanInteraction() // public override bool CanInteraction()
{ // {
return IsOpened && !CurrentTycoonPlayer.IsCarriedItem(); // return IsOpened && !CurrentTycoonPlayer.IsCarriedItem();
} // }
} // }
} // }

View File

@ -4,7 +4,8 @@ namespace BlueWater.Tycoons
{ {
public override void Interaction() public override void Interaction()
{ {
CurrentTycoonPlayer.DiscardItem(); TycoonEvents.OnCocktailDiscarded?.Invoke();
//CurrentTycoonPlayer.DiscardItem();
} }
public override bool CanInteraction() public override bool CanInteraction()

View File

@ -40,7 +40,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 06a07650d842ee94390ca2505955e94d, type: 3}
- <Idx>k__BackingField: Cocktail002 - <Idx>k__BackingField: Cocktail002
<Name>k__BackingField: "\uCE75\uD14C\uC77CB" <Name>k__BackingField: "\uCE75\uD14C\uC77CB"
<RatioRange>k__BackingField: 0 <RatioRange>k__BackingField: 0
@ -54,7 +54,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 19df9fcd0ddf5754890f7ea9c127b905, type: 3}
- <Idx>k__BackingField: Cocktail003 - <Idx>k__BackingField: Cocktail003
<Name>k__BackingField: "\uCE75\uD14C\uC77CC" <Name>k__BackingField: "\uCE75\uD14C\uC77CC"
<RatioRange>k__BackingField: 0 <RatioRange>k__BackingField: 0
@ -68,7 +68,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: a51b37c5e512c7e488e80f986f5f8aac, type: 3}
- <Idx>k__BackingField: Cocktail004 - <Idx>k__BackingField: Cocktail004
<Name>k__BackingField: "\uCE75\uD14C\uC77CD" <Name>k__BackingField: "\uCE75\uD14C\uC77CD"
<RatioRange>k__BackingField: 0 <RatioRange>k__BackingField: 0
@ -82,7 +82,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: d74e702a3e490a54e8a159128222f175, type: 3}
- <Idx>k__BackingField: Cocktail005 - <Idx>k__BackingField: Cocktail005
<Name>k__BackingField: "\uCE75\uD14C\uC77CE" <Name>k__BackingField: "\uCE75\uD14C\uC77CE"
<RatioRange>k__BackingField: 0 <RatioRange>k__BackingField: 0
@ -96,7 +96,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: bff0ff1345b7ae446b330a01e6ef7bd3, type: 3}
- <Idx>k__BackingField: Cocktail006 - <Idx>k__BackingField: Cocktail006
<Name>k__BackingField: "\uCE75\uD14C\uC77CAC" <Name>k__BackingField: "\uCE75\uD14C\uC77CAC"
<RatioRange>k__BackingField: 5 <RatioRange>k__BackingField: 5
@ -110,7 +110,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 006a36cba2a146247a1d25b9e246faaa, type: 3}
- <Idx>k__BackingField: Cocktail007 - <Idx>k__BackingField: Cocktail007
<Name>k__BackingField: "\uCE75\uD14C\uC77CBD" <Name>k__BackingField: "\uCE75\uD14C\uC77CBD"
<RatioRange>k__BackingField: 5 <RatioRange>k__BackingField: 5
@ -124,7 +124,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 31d7e535d499d5f43ab64731acc3eec3, type: 3}
- <Idx>k__BackingField: Cocktail008 - <Idx>k__BackingField: Cocktail008
<Name>k__BackingField: "\uCE75\uD14C\uC77CCD" <Name>k__BackingField: "\uCE75\uD14C\uC77CCD"
<RatioRange>k__BackingField: 5 <RatioRange>k__BackingField: 5
@ -138,7 +138,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 997d0aea13894a9428bf9d9f7fb66762, type: 3}
- <Idx>k__BackingField: Cocktail009 - <Idx>k__BackingField: Cocktail009
<Name>k__BackingField: "\uCE75\uD14C\uC77CABE" <Name>k__BackingField: "\uCE75\uD14C\uC77CABE"
<RatioRange>k__BackingField: 10 <RatioRange>k__BackingField: 10
@ -152,7 +152,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 3d04bfa220b9ebe40a4ae3f0a68c0911, type: 3}
- <Idx>k__BackingField: Cocktail010 - <Idx>k__BackingField: Cocktail010
<Name>k__BackingField: "\uCE75\uD14C\uC77CCDE" <Name>k__BackingField: "\uCE75\uD14C\uC77CCDE"
<RatioRange>k__BackingField: 10 <RatioRange>k__BackingField: 10
@ -166,7 +166,7 @@ MonoBehaviour:
<IngredientAmount4>k__BackingField: 0 <IngredientAmount4>k__BackingField: 0
<IngredientIdx5>k__BackingField: <IngredientIdx5>k__BackingField:
<IngredientAmount5>k__BackingField: 0 <IngredientAmount5>k__BackingField: 0
<Sprite>k__BackingField: {fileID: 0} <Sprite>k__BackingField: {fileID: 21300000, guid: 09168d6395b3e9b41b195a2aa8ae0a82, type: 3}
- <Idx>k__BackingField: Cocktail011 - <Idx>k__BackingField: Cocktail011
<Name>k__BackingField: "\uCE75\uD14C\uC77CB1" <Name>k__BackingField: "\uCE75\uD14C\uC77CB1"
<RatioRange>k__BackingField: 10 <RatioRange>k__BackingField: 10

View File

@ -27,7 +27,7 @@ namespace BlueWater.Tycoons
if (foodData == null) return; if (foodData == null) return;
FoodRecipes.Add(idx); FoodRecipes.Add(idx);
TycoonEvents.OnFoodRecipeAcquired?.Invoke(idx); //TycoonEvents.OnFoodRecipeAcquired?.Invoke(idx);
} }
public void AddDrinkRecipe(string idx) public void AddDrinkRecipe(string idx)

View File

@ -12,9 +12,11 @@ namespace BlueWater
public static Action OnLiquidRegionEntered; public static Action OnLiquidRegionEntered;
public static Action OnLiquidRegionExited; public static Action OnLiquidRegionExited;
public static Action<CocktailData> OnCocktailCompleted;
public static Action OnCocktailDiscarded;
// 요리 // 요리
public static Action<string> OnFoodRecipeAcquired; //public static Action<string> OnFoodRecipeAcquired;
} }
} }

View File

@ -1,3 +1,4 @@
using BlueWater.Interfaces;
using BlueWater.Items; using BlueWater.Items;
using BlueWater.Tycoons; using BlueWater.Tycoons;
using DG.Tweening; using DG.Tweening;
@ -7,14 +8,17 @@ using UnityEngine.UI;
namespace BlueWater.Uis namespace BlueWater.Uis
{ {
public class FoodBalloonUi : MonoBehaviour public class BalloonUi : MonoBehaviour
{ {
[field: Title("컴포넌트")] [Title("컴포넌트")]
[field: SerializeField, Required] [SerializeField, Required]
public Image FillImage { get; private set; } private Image _fillImage;
[field: SerializeField, Required] [SerializeField, Required]
public Image FoodImage { get; private set; } private Image _itemImage;
[SerializeField]
private GameObject _panel;
[Title("주문 정보")] [Title("주문 정보")]
[SerializeField, DisableIf("@true")] [SerializeField, DisableIf("@true")]
@ -24,7 +28,7 @@ namespace BlueWater.Uis
private bool _isWaitTimeOver; private bool _isWaitTimeOver;
[SerializeField, DisableIf("@true")] [SerializeField, DisableIf("@true")]
private bool _isFoodReceived; private bool _isItemReceived;
private Tween _tween; private Tween _tween;
private TableSeat _tableSeat; private TableSeat _tableSeat;
@ -35,16 +39,25 @@ namespace BlueWater.Uis
InitializeComponents(); InitializeComponents();
} }
private void Start()
{
TycoonEvents.OnCocktailCompleted += SetItemImage;
TycoonEvents.OnCocktailDiscarded += DiscardItem;
}
private void OnDestroy() private void OnDestroy()
{ {
TycoonEvents.OnCocktailCompleted -= SetItemImage;
TycoonEvents.OnCocktailDiscarded -= DiscardItem;
_tween.Kill(); _tween.Kill();
} }
[Button("컴포넌트 초기화")] [Button("컴포넌트 초기화")]
private void InitializeComponents() private void InitializeComponents()
{ {
FillImage = transform.Find("Background/FillImage").GetComponent<Image>(); _fillImage = transform.Find("Panel/FillImage").GetComponent<Image>();
FoodImage = transform.Find("FoodImage").GetComponent<Image>(); _itemImage = transform.Find("Panel/FoodImage").GetComponent<Image>();
_panel = transform.Find("Panel").gameObject;
} }
public void Initialize(TableSeat tableSeat) public void Initialize(TableSeat tableSeat)
@ -53,39 +66,48 @@ namespace BlueWater.Uis
HideUi(); HideUi();
} }
public void ShowUi() => gameObject.SetActive(true); public void ShowUi() => _panel.SetActive(true);
public void HideUi() => gameObject.SetActive(false); public void HideUi() => _panel.SetActive(false);
public void SetFoodImage(string foodIdx) public void SetItemImage(IPickup item)
{ {
_orderItemData = ItemManager.Instance.GetItemDataByIdx(foodIdx); //_orderItemData = ItemManager.Instance.GetItemDataByIdx(foodIdx);
if (_orderItemData == null) // if (_orderItemData == null)
// {
// Debug.LogError($"{foodIdx} 해당 음식을 등록할 수 없습니다.");
// return;
// }
if (!item.Sprite)
{ {
Debug.LogError($"{foodIdx} 해당 음식을 등록할 수 없습니다."); Debug.LogWarning($"{item.Sprite} 해당 음식의 이미지가 없습니다.");
return;
} }
if (!_orderItemData.Sprite) SetItemSprite(item.Sprite);
{ ShowUi();
Debug.LogWarning($"{_orderItemData.Sprite} 해당 음식의 이미지가 없습니다.");
}
FoodImage.sprite = _orderItemData.Sprite;
} }
public void SetFoodSprite(Sprite sprite) public void SetItemSprite(Sprite sprite)
{ {
FoodImage.sprite = sprite; _itemImage.sprite = sprite;
} }
public void OrderFood(string foodIdx, int waitTime, int hurryTime) public void DiscardItem()
{ {
HideUi();
SetItemImage(null);
}
public void OrderItem(string itemIdx, int waitTime, int hurryTime)
{
_orderItemData = ItemManager.Instance.GetItemDataByIdx(itemIdx);
_isOrdered = true; _isOrdered = true;
_isWaitTimeOver = false; _isWaitTimeOver = false;
_isFoodReceived = false; _isItemReceived = false;
SetFoodImage(foodIdx); SetItemImage(_orderItemData);
ShowUi(); ShowUi();
_tween = FillImage.DOFillAmount(1f, hurryTime) _tween = _fillImage.DOFillAmount(1f, hurryTime)
.From(0f) .From(0f)
.SetEase(Ease.Linear) .SetEase(Ease.Linear)
.SetDelay(waitTime) .SetDelay(waitTime)
@ -98,11 +120,11 @@ namespace BlueWater.Uis
{ {
_isOrdered = true; _isOrdered = true;
_isWaitTimeOver = false; _isWaitTimeOver = false;
_isFoodReceived = false; _isItemReceived = false;
SetFoodSprite(DataManager.Instance.SpriteDataSo.Gold); SetItemSprite(DataManager.Instance.SpriteDataSo.Gold);
ShowUi(); ShowUi();
_tween = FillImage.DOFillAmount(1f, hurryTime) _tween = _fillImage.DOFillAmount(1f, hurryTime)
.From(0f) .From(0f)
.SetEase(Ease.Linear) .SetEase(Ease.Linear)
.SetDelay(waitTime) .SetDelay(waitTime)
@ -118,7 +140,7 @@ namespace BlueWater.Uis
} }
public bool IsWaitTimeOver() => _isOrdered && _isWaitTimeOver; public bool IsWaitTimeOver() => _isOrdered && _isWaitTimeOver;
public bool IsFoodReceive() => _isFoodReceived; public bool IsFoodReceive() => _isItemReceived;
public void CancelOrder() public void CancelOrder()
{ {
@ -130,7 +152,7 @@ namespace BlueWater.Uis
_tableSeat.DirtyTable(); _tableSeat.DirtyTable();
_tween.Kill(); _tween.Kill();
HideUi(); HideUi();
_isFoodReceived = true; _isItemReceived = true;
} }
} }
} }

View File

@ -62,13 +62,13 @@ namespace BlueWater.Uis
private void Start() private void Start()
{ {
TycoonEvents.OnFoodRecipeAcquired += AddFoodRecipe; //TycoonEvents.OnFoodRecipeAcquired += AddFoodRecipe;
_dataManager.Inventory.OnChangeItemSlot += OnInventoryChange; _dataManager.Inventory.OnChangeItemSlot += OnInventoryChange;
} }
private void OnDestroy() private void OnDestroy()
{ {
TycoonEvents.OnFoodRecipeAcquired -= AddFoodRecipe; //TycoonEvents.OnFoodRecipeAcquired -= AddFoodRecipe;
_dataManager.Inventory.OnChangeItemSlot -= OnInventoryChange; _dataManager.Inventory.OnChangeItemSlot -= OnInventoryChange;
} }

View File

@ -53,7 +53,7 @@ namespace BlueWater.Uis
Destroy(indicator.gameObject); Destroy(indicator.gameObject);
return; return;
} }
var target = customer.FoodBalloonUi.transform; var target = customer.BalloonUi.transform;
var screenPosition = _mainCamera.WorldToScreenPoint(target.position); var screenPosition = _mainCamera.WorldToScreenPoint(target.position);
if (!target.gameObject.activeSelf) if (!target.gameObject.activeSelf)

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -46,9 +46,9 @@ TextureImporter:
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 9
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.08}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1 spriteMeshType: 1
alignment: 0 alignment: 0
spritePivot: {x: 0.5, y: 0.5} spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100 spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1 spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1 alphaUsage: 1

View File

@ -548,7 +548,7 @@ MonoBehaviour:
<PlayerInput>k__BackingField: {fileID: 6054159730444663926} <PlayerInput>k__BackingField: {fileID: 6054159730444663926}
<VisualLook>k__BackingField: {fileID: 6509241874729291456} <VisualLook>k__BackingField: {fileID: 6509241874729291456}
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472} <SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
<FoodBalloonUi>k__BackingField: {fileID: 2412195434237916265} <BalloonUi>k__BackingField: {fileID: 0}
<TycoonInput>k__BackingField: {fileID: 1674052485383758547} <TycoonInput>k__BackingField: {fileID: 1674052485383758547}
<TycoonMovement>k__BackingField: {fileID: 4836489897218844789} <TycoonMovement>k__BackingField: {fileID: 4836489897218844789}
<TycoonCarryHandler>k__BackingField: {fileID: 909302231676134912} <TycoonCarryHandler>k__BackingField: {fileID: 909302231676134912}
@ -596,7 +596,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: cb167e66df896c745a538310e5a52f61, type: 3} m_Script: {fileID: 11500000, guid: cb167e66df896c745a538310e5a52f61, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
<MoveSpeed>k__BackingField: 12 <MoveSpeed>k__BackingField: 7
--- !u!114 &909302231676134912 --- !u!114 &909302231676134912
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -723,9 +723,13 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: 271498015662217203, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3} - target: {fileID: 271498015662217203, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: FoodBalloonUi value: BalloonUi
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 271498015662217203, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3} - target: {fileID: 271498015662217203, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1505211282054036597, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3}
propertyPath: m_IsActive propertyPath: m_IsActive
value: 0 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
@ -826,17 +830,6 @@ PrefabInstance:
m_AddedGameObjects: [] m_AddedGameObjects: []
m_AddedComponents: [] m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3} m_SourcePrefab: {fileID: 100100000, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3}
--- !u!114 &2412195434237916265 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2829248495233098512, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3}
m_PrefabInstance: {fileID: 448763968479860601}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4132c767aaeea7f43b8b894bde7b7351, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &2494354617667434336 stripped --- !u!224 &2494354617667434336 stripped
RectTransform: RectTransform:
m_CorrespondingSourceObject: {fileID: 2641341650102689817, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3} m_CorrespondingSourceObject: {fileID: 2641341650102689817, guid: bb0dfd08f3e9d944f808e61d886581e7, type: 3}

View File

@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 2641341650102689817} - component: {fileID: 2641341650102689817}
- component: {fileID: 2829248495233098512} - component: {fileID: 2829248495233098512}
m_Layer: 5 m_Layer: 5
m_Name: FoodBalloonUi m_Name: BalloonUi
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -29,8 +29,7 @@ RectTransform:
m_LocalScale: {x: 5, y: 5, z: 5} m_LocalScale: {x: 5, y: 5, z: 5}
m_ConstrainProportionsScale: 1 m_ConstrainProportionsScale: 1
m_Children: m_Children:
- {fileID: 1610583026884195458} - {fileID: 674323407039969650}
- {fileID: 6400894162898819538}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
@ -50,15 +49,50 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4132c767aaeea7f43b8b894bde7b7351, type: 3} m_Script: {fileID: 11500000, guid: 4132c767aaeea7f43b8b894bde7b7351, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
<FillImage>k__BackingField: {fileID: 2173167918881327799} _fillImage: {fileID: 2173167918881327799}
<FoodImage>k__BackingField: {fileID: 8218406547424483500} _itemImage: {fileID: 8218406547424483500}
_customer: {fileID: 0} _panel: {fileID: 1505211282054036597}
_offset: {x: -0.2, y: 1.5, z: 0}
_defaultWaitTime: 5
_customerWaitTime: 0
_isOrdered: 0 _isOrdered: 0
_isWaitTimeOver: 0 _isWaitTimeOver: 0
_isFoodReceived: 0 _isItemReceived: 0
--- !u!1 &1505211282054036597
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 674323407039969650}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &674323407039969650
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1505211282054036597}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1610583026884195458}
- {fileID: 6751494179874491372}
- {fileID: 6400894162898819538}
m_Father: {fileID: 2641341650102689817}
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!1 &2909533541407981610 --- !u!1 &2909533541407981610
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -84,13 +118,12 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2909533541407981610} m_GameObject: {fileID: 2909533541407981610}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: m_Children: []
- {fileID: 6751494179874491372} m_Father: {fileID: 674323407039969650}
m_Father: {fileID: 2641341650102689817}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
@ -160,12 +193,12 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3361235759547244541} m_GameObject: {fileID: 3361235759547244541}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 2641341650102689817} m_Father: {fileID: 674323407039969650}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
@ -240,7 +273,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0 m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1610583026884195458} m_Father: {fileID: 674323407039969650}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}