estimate ui

This commit is contained in:
2022-12-14 21:57:03 +01:00
parent 5e2af5468c
commit 12b0acbcbe
7 changed files with 368 additions and 211 deletions

View File

@@ -30,13 +30,15 @@ RectTransform:
m_Children: m_Children:
- {fileID: 4522052738508588346} - {fileID: 4522052738508588346}
- {fileID: 3651690039212746853} - {fileID: 3651690039212746853}
- {fileID: 6111926162705994754}
- {fileID: 1606827657543776964}
- {fileID: 8506001028645180302}
- {fileID: 5237193151499999207}
- {fileID: 4759128159024176926} - {fileID: 4759128159024176926}
- {fileID: 1891571209360683323} - {fileID: 1891571209360683323}
- {fileID: 6434422615423022383} - {fileID: 6434422615423022383}
- {fileID: 3909503323894949288} - {fileID: 3909503323894949288}
- {fileID: 7086005505455629097} - {fileID: 7086005505455629097}
- {fileID: 8506001028645180302}
- {fileID: 5237193151499999207}
- {fileID: 76348826299067250} - {fileID: 76348826299067250}
- {fileID: 1019622809213071054} - {fileID: 1019622809213071054}
m_Father: {fileID: 4522052738963994966} m_Father: {fileID: 4522052738963994966}
@@ -195,7 +197,6 @@ RectTransform:
m_Children: m_Children:
- {fileID: 7182894751559651105} - {fileID: 7182894751559651105}
- {fileID: 9062548758054197003} - {fileID: 9062548758054197003}
- {fileID: 482424009816971294}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -284,8 +285,10 @@ MonoBehaviour:
addTimeButton: {fileID: 76348826299067249} addTimeButton: {fileID: 76348826299067249}
removeTimeButton: {fileID: 1019622809213071053} removeTimeButton: {fileID: 1019622809213071053}
timeText: {fileID: 3651690039212746852} timeText: {fileID: 3651690039212746852}
targetTimeText: {fileID: 7086005505455629096} roomTimeText: {fileID: 1606827657543776965}
estimateTimeText: {fileID: 5237193151499999206} estimateTimeText: {fileID: 5237193151499999206}
targetTimeText: {fileID: 7086005505455629096}
uiUpdateInterval: 1
gameState: 0 gameState: 0
--- !u!1 &5267753817356931382 --- !u!1 &5267753817356931382
GameObject: GameObject:
@@ -650,7 +653,7 @@ PrefabInstance:
- target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -34 value: -94
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
@@ -863,7 +866,7 @@ PrefabInstance:
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -70 value: -130
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
@@ -938,7 +941,7 @@ PrefabInstance:
- target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -34 value: -94
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
@@ -1429,6 +1432,159 @@ RectTransform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 2501054174014209494} m_PrefabInstance: {fileID: 2501054174014209494}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &3645369568327693290
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7182894751559651105}
m_Modifications:
- target: {fileID: 2655555272253868329, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Name
value: Room Time
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Pivot.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_SizeDelta.x
value: 46
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_SizeDelta.y
value: 30
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchoredPosition.x
value: -46
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -34
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868335, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Text
value: '00:00
'
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868335, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_FontData.m_Alignment
value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fa44f6047bc35a141a84d1b4e0919ff9, type: 3}
--- !u!224 &1606827657543776964 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
m_PrefabInstance: {fileID: 3645369568327693290}
m_PrefabAsset: {fileID: 0}
--- !u!114 &1606827657543776965 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2655555272253868335, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
m_PrefabInstance: {fileID: 3645369568327693290}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &3709675561396504867 --- !u!1001 &3709675561396504867
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1535,7 +1691,7 @@ PrefabInstance:
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5, - target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -129 value: -159
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5, - target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3} type: 3}
@@ -1615,175 +1771,6 @@ RectTransform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 3709675561396504867} m_PrefabInstance: {fileID: 3709675561396504867}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &3802654961677695567
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 4522052738963994966}
m_Modifications:
- target: {fileID: 3635623839229914385, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_Text
value: Exit
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501520, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_Name
value: Exit
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_Pivot.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_RootOrder
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_SizeDelta.x
value: 40.410492
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_SizeDelta.y
value: 30
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_AnchoredPosition.x
value: -20
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 16
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 6342815206448132038}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: ExitGame
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: Escape_Room_Engine.Engine.Scripts.GameControl, Assembly-CSharp
objectReference: {fileID: 0}
- target: {fileID: 3635623840709501522, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c7b840466ebfae1468d75282ab9334f5, type: 3}
--- !u!224 &482424009816971294 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3}
m_PrefabInstance: {fileID: 3802654961677695567}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &4346599348938312863 --- !u!1001 &4346599348938312863
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1890,7 +1877,7 @@ PrefabInstance:
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5, - target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -129 value: -159
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5, - target: {fileID: 3635623840709501521, guid: c7b840466ebfae1468d75282ab9334f5,
type: 3} type: 3}
@@ -2071,7 +2058,7 @@ PrefabInstance:
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -70 value: -130
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
@@ -2180,7 +2167,7 @@ PrefabInstance:
- target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -34 value: -94
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645737, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
@@ -2220,12 +2207,12 @@ PrefabInstance:
- target: {fileID: 5840570772713645738, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645738, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: StopGame value: ExitGame
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5840570772713645738, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645738, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
value: EscapeRoomEngine.Engine.Runtime.GameControl, Engine value: EscapeRoomEngine.Engine.Runtime.UI.GameControl, Engine
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 5840570772713645738, guid: a0d402627dc805e42ab9e84487b9871b, - target: {fileID: 5840570772713645738, guid: a0d402627dc805e42ab9e84487b9871b,
type: 3} type: 3}
@@ -2356,7 +2343,7 @@ PrefabInstance:
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -99 value: -65
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
@@ -2490,7 +2477,7 @@ PrefabInstance:
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
propertyPath: m_AnchoredPosition.y propertyPath: m_AnchoredPosition.y
value: -99 value: -65
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9, - target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3} type: 3}
@@ -2542,3 +2529,137 @@ RectTransform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 7814961547219803849} m_PrefabInstance: {fileID: 7814961547219803849}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
--- !u!1001 &8073688616030330156
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7182894751559651105}
m_Modifications:
- target: {fileID: 2655555272253868329, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Name
value: Room Time Label
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Pivot.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_SizeDelta.x
value: 56
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_SizeDelta.y
value: 30
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -34
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2655555272253868335, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
propertyPath: m_Text
value: 'Room:'
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: fa44f6047bc35a141a84d1b4e0919ff9, type: 3}
--- !u!224 &6111926162705994754 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 2655555272253868334, guid: fa44f6047bc35a141a84d1b4e0919ff9,
type: 3}
m_PrefabInstance: {fileID: 8073688616030330156}
m_PrefabAsset: {fileID: 0}

View File

@@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using EscapeRoomEngine.Engine.Runtime.Measurements; using EscapeRoomEngine.Engine.Runtime.Measurements;
using EscapeRoomEngine.Engine.Runtime.Modules; using EscapeRoomEngine.Engine.Runtime.Modules;
using EscapeRoomEngine.Engine.Runtime.UI;
using EscapeRoomEngine.Engine.Runtime.Utilities; using EscapeRoomEngine.Engine.Runtime.Utilities;
using NaughtyAttributes; using NaughtyAttributes;
using UnityEngine; using UnityEngine;
@@ -27,9 +28,10 @@ namespace EscapeRoomEngine.Engine.Runtime
public int NumberOfRooms => _rooms.Count; public int NumberOfRooms => _rooms.Count;
public IOption<Room> CurrentRoom => NumberOfRooms > 0 ? Some<Room>.Of(_rooms[^1]) : None<Room>.New(); public IOption<Room> CurrentRoom => NumberOfRooms > 0 ? Some<Room>.Of(_rooms[^1]) : None<Room>.New();
public float EstimatedTimeRemaining { get; private set; }
private readonly List<Room> _rooms = new(); private readonly List<Room> _rooms = new();
private List<PuzzleModuleDescription> _puzzles; private List<PuzzleModuleDescription> _availablePuzzles, _plannedPuzzles;
private GameObject _playSpaceOrigin; private GameObject _playSpaceOrigin;
private void Awake() private void Awake()
@@ -38,7 +40,8 @@ namespace EscapeRoomEngine.Engine.Runtime
Measure.Clear(); Measure.Clear();
_puzzles = new List<PuzzleModuleDescription>(theme.puzzleTypes); _availablePuzzles = new List<PuzzleModuleDescription>(theme.puzzleTypes);
_plannedPuzzles = new List<PuzzleModuleDescription>(_availablePuzzles);
} }
private void Start() private void Start()
@@ -70,6 +73,7 @@ namespace EscapeRoomEngine.Engine.Runtime
Instantiate(theme.environment, room.roomObject.transform, false); Instantiate(theme.environment, room.roomObject.transform, false);
} }
GameControl.Instance.TimeInRoom = 0;
UpdateUI(); UpdateUI();
} }
@@ -79,9 +83,8 @@ namespace EscapeRoomEngine.Engine.Runtime
var tries = 0; var tries = 0;
Space space; Space space;
Passage exit = null; Passage exit = null;
var puzzle = PlanPuzzles();
var puzzle = _puzzles.PopRandomElement();
do do
{ {
tries++; tries++;
@@ -91,7 +94,7 @@ namespace EscapeRoomEngine.Engine.Runtime
space = new Space(room, entrance); space = new Space(room, entrance);
// add exit // add exit
if (_puzzles.Count > 0) if (_plannedPuzzles.Count > 0)
{ {
var exitDoor = new DoorModule(space, theme.exitDoorTypes.RandomElement()); var exitDoor = new DoorModule(space, theme.exitDoorTypes.RandomElement());
if (!space.AddModuleWithRequirements(exitDoor)) if (!space.AddModuleWithRequirements(exitDoor))
@@ -116,6 +119,19 @@ namespace EscapeRoomEngine.Engine.Runtime
room.AddSpace(space, exit); room.AddSpace(space, exit);
} }
/// <summary>
/// Updates the list of puzzles planned for this run and returns the puzzle to put in the next room.
/// </summary>
private PuzzleModuleDescription PlanPuzzles()
{
var nextPuzzle = _plannedPuzzles.PopRandomElement();
EstimatedTimeRemaining = Measure.AverageTime(_plannedPuzzles);
return nextPuzzle;
}
#endregion #endregion
public void HidePreviousRoom(bool destroy = true) public void HidePreviousRoom(bool destroy = true)

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using EscapeRoomEngine.Engine.Runtime.Modules; using EscapeRoomEngine.Engine.Runtime.Modules;
using EscapeRoomEngine.Engine.Runtime.Utilities; using EscapeRoomEngine.Engine.Runtime.Utilities;
using UnityEngine; using UnityEngine;
@@ -17,6 +18,13 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
private static Dictionary<int, PuzzleMeasurement> _runningMeasurements; private static Dictionary<int, PuzzleMeasurement> _runningMeasurements;
private static Session _currentSession; private static Session _currentSession;
public static float AverageTime(IEnumerable<PuzzleModuleDescription> puzzles) =>
puzzles.Sum(puzzle => PuzzleStorage.Instance.Load(puzzle).AverageTimeToSolve);
public static float AverageTime(PuzzleModuleDescription puzzle) =>
PuzzleStorage.Instance.Load(puzzle).AverageTimeToSolve;
public static float AverageTime(Room room) =>
room.puzzles.Sum(puzzle => AverageTime((PuzzleModuleDescription)puzzle.description));
public static void StartMeasuring(PuzzleModuleDescription puzzle) public static void StartMeasuring(PuzzleModuleDescription puzzle)
{ {
_runningMeasurements[puzzle.Id] = new PuzzleMeasurement _runningMeasurements[puzzle.Id] = new PuzzleMeasurement

View File

@@ -63,7 +63,7 @@ namespace EscapeRoomEngine.Engine.Runtime.Measurements
private Puzzle LoadOrNew(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id) ?? New(puzzle); private Puzzle LoadOrNew(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id) ?? New(puzzle);
private Puzzle Load(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id); public Puzzle Load(PuzzleModuleDescription puzzle) => _realm.Find<Puzzle>(puzzle.Id);
public void Delete(PuzzleModuleDescription puzzle) public void Delete(PuzzleModuleDescription puzzle)
{ {

View File

@@ -13,11 +13,11 @@ namespace EscapeRoomEngine.Engine.Runtime
{ {
internal Passage entrance, exit; internal Passage entrance, exit;
internal GameObject roomObject; internal GameObject roomObject;
internal readonly List<PuzzleModule> puzzles = new();
internal bool LastRoom => exit == null; internal bool LastRoom => exit == null;
private readonly List<Space> _spaces = new(); private readonly List<Space> _spaces = new();
private readonly List<PuzzleModule> _puzzles = new();
private readonly List<DoorModule> _doors = new(); private readonly List<DoorModule> _doors = new();
internal Room(Passage entrance) internal Room(Passage entrance)
@@ -38,8 +38,8 @@ namespace EscapeRoomEngine.Engine.Runtime
{ {
Logger.Log($"Skipping {this}...", LogType.PuzzleFlow); Logger.Log($"Skipping {this}...", LogType.PuzzleFlow);
_puzzles.ForEach(puzzle => puzzle.PuzzleState.Solve()); puzzles.ForEach(puzzle => puzzle.PuzzleState.Solve());
if (_puzzles.Count == 0 && !LastRoom) if (puzzles.Count == 0 && !LastRoom)
{ {
exit.fromOut.DoorState.Unlock(); exit.fromOut.DoorState.Unlock();
} }
@@ -52,7 +52,7 @@ namespace EscapeRoomEngine.Engine.Runtime
internal void AddPuzzle(PuzzleModule puzzle) internal void AddPuzzle(PuzzleModule puzzle)
{ {
_puzzles.Add(puzzle); puzzles.Add(puzzle);
puzzle.PuzzleState.PuzzleEvent += OnPuzzleEvent; puzzle.PuzzleState.PuzzleEvent += OnPuzzleEvent;
} }
@@ -66,7 +66,7 @@ namespace EscapeRoomEngine.Engine.Runtime
{ {
GameControl.Instance.StopGame(); GameControl.Instance.StopGame();
} }
else if (_puzzles.All(p => p.PuzzleState.Solved)) else if (puzzles.All(p => p.PuzzleState.Solved))
{ {
exit.fromOut.DoorState.Unlock(); exit.fromOut.DoorState.Unlock();
} }
@@ -87,7 +87,7 @@ namespace EscapeRoomEngine.Engine.Runtime
break; break;
// start measurements on every puzzle as soon as the player enters the last room // start measurements on every puzzle as soon as the player enters the last room
case DoorEventType.ExitedFrom when door.Equals(entrance.toIn) && Engine.Instance.CurrentRoom.Contains(this): case DoorEventType.ExitedFrom when door.Equals(entrance.toIn) && Engine.Instance.CurrentRoom.Contains(this):
_puzzles.ForEach(puzzle => Measure.StartMeasuring((PuzzleModuleDescription)puzzle.description)); puzzles.ForEach(puzzle => Measure.StartMeasuring((PuzzleModuleDescription)puzzle.description));
Engine.Instance.HidePreviousRoom(); Engine.Instance.HidePreviousRoom();
break; break;
} }

View File

@@ -19,24 +19,27 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
[BoxGroup("Internal")] [SerializeField] [BoxGroup("Internal")] [SerializeField]
private Button startButton, stopButton, pauseButton, addTimeButton, removeTimeButton; private Button startButton, stopButton, pauseButton, addTimeButton, removeTimeButton;
[BoxGroup("Internal")] [SerializeField] [BoxGroup("Internal")] [SerializeField]
private Text timeText, targetTimeText, estimateTimeText; private Text timeText, roomTimeText, estimateTimeText, targetTimeText;
[BoxGroup("Internal")] [SerializeField] [BoxGroup("Internal")] [SerializeField]
private float uiUpdateInterval = 1; private float uiUpdateInterval = 1;
[HideInInspector] public GameState gameState = GameState.Stopped; [HideInInspector] public GameState gameState = GameState.Stopped;
private float _timeElapsed, _targetTime; public float TimeElapsed { get; private set; }
public float TimeInRoom { get; set; }
public float TargetTime { get; private set; }
private float _previousUIUpdate; private float _previousUIUpdate;
private void Awake() private void Awake()
{ {
Instance = this; Instance = this;
_targetTime = Engine.Instance.initialTargetTime;
} }
private void Start() private void Start()
{ {
TargetTime = Engine.Instance.initialTargetTime;
SetTimeText(); SetTimeText();
} }
@@ -45,7 +48,8 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
// update time // update time
if (gameState == GameState.Running) if (gameState == GameState.Running)
{ {
_timeElapsed += Time.deltaTime; TimeElapsed += Time.deltaTime;
TimeInRoom += Time.deltaTime;
} }
// update ui // update ui
@@ -61,7 +65,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
stopButton.interactable = gameState != GameState.Stopped; stopButton.interactable = gameState != GameState.Stopped;
pauseButton.interactable = gameState is GameState.Running or GameState.Paused; pauseButton.interactable = gameState is GameState.Running or GameState.Paused;
addTimeButton.interactable = gameState != GameState.Stopped; addTimeButton.interactable = gameState != GameState.Stopped;
removeTimeButton.interactable = gameState != GameState.Stopped && _targetTime >= _timeElapsed + 60; removeTimeButton.interactable = gameState != GameState.Stopped && TargetTime >= TimeElapsed + 60;
} }
#region Time Controls #region Time Controls
@@ -70,7 +74,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
{ {
gameState = GameState.Running; gameState = GameState.Running;
_timeElapsed = 0; TimeElapsed = 0;
// generate the first room if it hasn't been generated yet // generate the first room if it hasn't been generated yet
Engine.Instance.CurrentRoom.Match(none: () => Engine.Instance.GenerateRoom()); Engine.Instance.CurrentRoom.Match(none: () => Engine.Instance.GenerateRoom());
@@ -84,7 +88,7 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
if (gameState != GameState.Stopped) if (gameState != GameState.Stopped)
{ {
// was running // was running
Measure.EndSession(_timeElapsed); Measure.EndSession(TimeElapsed);
} }
gameState = GameState.Stopped; gameState = GameState.Stopped;
@@ -112,17 +116,25 @@ namespace EscapeRoomEngine.Engine.Runtime.UI
/// <param name="seconds">The amount of seconds that will be added to the time. Can be negative to remove time.</param> /// <param name="seconds">The amount of seconds that will be added to the time. Can be negative to remove time.</param>
public void ChangeTime(int seconds) public void ChangeTime(int seconds)
{ {
if (_targetTime + seconds >= _timeElapsed) if (TargetTime + seconds >= TimeElapsed)
{ {
_targetTime += seconds; TargetTime += seconds;
} }
} }
private void SetTimeText() private void SetTimeText()
{ {
timeText.text = TimeToText(_timeElapsed); timeText.text = TimeToText(TimeElapsed);
targetTimeText.text = TimeToText(_targetTime); roomTimeText.text = TimeToText(TimeInRoom);
estimateTimeText.text = TimeToText(_timeElapsed); targetTimeText.text = TimeToText(TargetTime);
Engine.Instance.CurrentRoom.Match(some: room =>
{
estimateTimeText.text = TimeToText(
TimeElapsed - TimeInRoom
+ Mathf.Max(TimeInRoom, Measure.AverageTime(room))
+ Engine.Instance.EstimatedTimeRemaining);
});
} }
private static string TimeToText(float time) => $"{time.ToTimeSpan():mm':'ss}"; private static string TimeToText(float time) => $"{time.ToTimeSpan():mm':'ss}";

View File

@@ -567,7 +567,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
maxSpaceGenerationTries: 1000 maxSpaceGenerationTries: 1000
targetTime: 300 initialTargetTime: 300
roomOffset: {x: 0, y: 1000, z: 0} roomOffset: {x: 0, y: 1000, z: 0}
theme: {fileID: 11400000, guid: 568d9a7d70f3edb4cb6db66a0010f105, type: 2} theme: {fileID: 11400000, guid: 568d9a7d70f3edb4cb6db66a0010f105, type: 2}
--- !u!4 &1568048335 --- !u!4 &1568048335
@@ -598,7 +598,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
loggingEnabled: 1 loggingEnabled: 1
typeFilter: 0000000009000000 typeFilter: 00000000
--- !u!114 &1568048339 --- !u!114 &1568048339
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0