diff --git a/game/Assets/Data/Artefacts/ArtefactObjects/Power/PA_Freeze.asset b/game/Assets/Data/Artefacts/ArtefactObjects/Power/PA_Freeze.asset new file mode 100644 index 0000000..82e4056 --- /dev/null +++ b/game/Assets/Data/Artefacts/ArtefactObjects/Power/PA_Freeze.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0228856d50ce2a845abd7b3eda114390, type: 3} + m_Name: PA_Freeze + m_EditorClassIdentifier: + _artefactID: 12 + _dialogueKey: + _name: Freeze + _power: {fileID: 0} diff --git a/game/Assets/Data/Artefacts/ArtefactObjects/Power/PA_Freeze.asset.meta b/game/Assets/Data/Artefacts/ArtefactObjects/Power/PA_Freeze.asset.meta new file mode 100644 index 0000000..067ac7e --- /dev/null +++ b/game/Assets/Data/Artefacts/ArtefactObjects/Power/PA_Freeze.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2e37ff6639a22e4eacc5e95d8e13723 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/Prefabs/Player.prefab b/game/Assets/Prefabs/Player.prefab index b2aa43c..e4e5b75 100644 --- a/game/Assets/Prefabs/Player.prefab +++ b/game/Assets/Prefabs/Player.prefab @@ -167,6 +167,8 @@ MonoBehaviour: _jumpColor: {r: 1, g: 0.95084643, b: 0, a: 0} _boostColor: {r: 1, g: 0, b: 0.9173207, a: 0} _exhaustedColor: {r: 1, g: 0, b: 0, a: 0} + objectTimeScale: {fileID: 11400000, guid: 9b68e167db44c0c42837e9a679da964e, type: 2} + frozenTime: {fileID: 11400000, guid: 19273ba4ac237ab4381926cfb195dda8, type: 2} --- !u!114 &13726836969441780 MonoBehaviour: m_ObjectHideFlags: 0 @@ -297,6 +299,10 @@ MonoBehaviour: m_Calls: [] m_ActionId: b118302a-6162-4223-8a6c-38ff2d6b4133 m_ActionName: ArtefactPreview/LookDelta[/Mouse/delta] + - m_PersistentCalls: + m_Calls: [] + m_ActionId: 29f1599e-fe43-47df-ad25-8e712263d0ab + m_ActionName: CoreMap/Freeze[/Keyboard/g] m_NeverAutoSwitchControlSchemes: 0 m_DefaultControlScheme: Gamepad m_DefaultActionMap: CoreMap @@ -332,8 +338,10 @@ MonoBehaviour: m_EditorClassIdentifier: _cheatBlink: 0 _cheatBoost: 0 + _cheatFreeze: 0 _blink: {fileID: 11400000, guid: b47ea197a7cc2ed4eb15271cef672997, type: 2} _boost: {fileID: 11400000, guid: d5ed942937d8cca478f3ec97f6b9c8a2, type: 2} + _freeze: {fileID: 0} --- !u!114 &3320306143821152633 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/game/Assets/Prefabs/PlayerObjects.prefab b/game/Assets/Prefabs/PlayerObjects.prefab index c87b36c..68e644a 100644 --- a/game/Assets/Prefabs/PlayerObjects.prefab +++ b/game/Assets/Prefabs/PlayerObjects.prefab @@ -318,6 +318,18 @@ PrefabInstance: propertyPath: m_Camera value: objectReference: {fileID: 4676633831388223340} + - target: {fileID: 13726836969441780, guid: 5efe0b059275dbe48a4108d03ad03fd9, type: 3} + propertyPath: m_ActionEvents.Array.data[5].m_ActionId + value: 0eb55067-1328-4b0a-9494-b427befe049a + objectReference: {fileID: 0} + - target: {fileID: 13726836969441780, guid: 5efe0b059275dbe48a4108d03ad03fd9, type: 3} + propertyPath: m_ActionEvents.Array.data[5].m_ActionName + value: CoreMap/New action + objectReference: {fileID: 0} + - target: {fileID: 13726836969441780, guid: 5efe0b059275dbe48a4108d03ad03fd9, type: 3} + propertyPath: m_ActionEvents.Array.data[5].m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Blink + objectReference: {fileID: 0} - target: {fileID: 13726836969441781, guid: 5efe0b059275dbe48a4108d03ad03fd9, type: 3} propertyPath: m_Name value: Player @@ -326,6 +338,10 @@ PrefabInstance: propertyPath: _camera value: objectReference: {fileID: 4676633831388223340} + - target: {fileID: 13726837176080779, guid: 5efe0b059275dbe48a4108d03ad03fd9, type: 3} + propertyPath: _freeze + value: + objectReference: {fileID: 11400000, guid: 0cd9cf6494bb6f54d9b97631010d780e, type: 2} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 5efe0b059275dbe48a4108d03ad03fd9, type: 3} --- !u!4 &4676633831945762709 stripped diff --git a/game/Assets/Prefabs/Traps/FallawayFloor.prefab b/game/Assets/Prefabs/Traps/FallawayFloor.prefab index 2cd4bba..be8e6ef 100644 --- a/game/Assets/Prefabs/Traps/FallawayFloor.prefab +++ b/game/Assets/Prefabs/Traps/FallawayFloor.prefab @@ -87,6 +87,7 @@ MonoBehaviour: fallAwayTime: 1 dissolve: {fileID: 2100000, guid: 98767dd77414bad44b23ef5332c1d8f1, type: 2} _renderer: {fileID: 6378198502367496824} + objectTimeScale: {fileID: 11400000, guid: 9b68e167db44c0c42837e9a679da964e, type: 2} _settings: {fileID: 11400000, guid: 36275776eda5c8249bf45e01721afe36, type: 2} _graphics: {fileID: 4864755999650917293} --- !u!54 &980120856895548943 diff --git a/game/Assets/Prefabs/UI/PlayerFreezeUI.prefab b/game/Assets/Prefabs/UI/PlayerFreezeUI.prefab new file mode 100644 index 0000000..36d78ad --- /dev/null +++ b/game/Assets/Prefabs/UI/PlayerFreezeUI.prefab @@ -0,0 +1,322 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2220041284483646358 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2220041284483646359} + - component: {fileID: 2220041284483646357} + - component: {fileID: 2220041284483646356} + - component: {fileID: 2220041284483646354} + m_Layer: 5 + m_Name: PlayerUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2220041284483646359 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284483646358} + 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_Children: + - {fileID: 2220041284586465449} + - {fileID: 2220041284891186932} + m_Father: {fileID: 0} + m_RootOrder: 0 + 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!222 &2220041284483646357 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284483646358} + m_CullTransparentMesh: 1 +--- !u!114 &2220041284483646356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284483646358} + 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: 0, g: 0, b: 0, a: 0} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!114 &2220041284483646354 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284483646358} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7befeb001df190b4b8ff21ffa8aa3eec, type: 3} + m_Name: + m_EditorClassIdentifier: + cooldownImage: {fileID: 2220041284521989762} + freeze: {fileID: 11400000, guid: 0cd9cf6494bb6f54d9b97631010d780e, type: 2} + freezePanel: {fileID: 2220041284586465448} + frozenTime: {fileID: 11400000, guid: 19273ba4ac237ab4381926cfb195dda8, type: 2} +--- !u!1 &2220041284521989764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2220041284521989765} + - component: {fileID: 2220041284521989763} + - component: {fileID: 2220041284521989762} + m_Layer: 5 + m_Name: Cooldown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2220041284521989765 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284521989764} + 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_Children: [] + m_Father: {fileID: 2220041284891186932} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -50, y: -50} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2220041284521989763 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284521989764} + m_CullTransparentMesh: 1 +--- !u!114 &2220041284521989762 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284521989764} + 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: 0.8627451} + 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: 21300000, guid: a11777191ca1ac140accf07b15900e79, type: 3} + m_Type: 3 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 2 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &2220041284586465448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2220041284586465449} + - component: {fileID: 2220041284586465463} + - component: {fileID: 2220041284586465462} + m_Layer: 5 + m_Name: FreezePanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &2220041284586465449 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284586465448} + 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_Children: [] + m_Father: {fileID: 2220041284483646359} + m_RootOrder: 0 + 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!222 &2220041284586465463 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284586465448} + m_CullTransparentMesh: 1 +--- !u!114 &2220041284586465462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284586465448} + 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: 0, g: 0.16378963, b: 0.2264151, a: 0.392} + 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: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + 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!1 &2220041284891186935 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2220041284891186932} + - component: {fileID: 2220041284891186930} + - component: {fileID: 2220041284891186933} + m_Layer: 5 + m_Name: Hourglass + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2220041284891186932 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284891186935} + 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_Children: + - {fileID: 2220041284521989765} + m_Father: {fileID: 2220041284483646359} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -80, y: -78} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2220041284891186930 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284891186935} + m_CullTransparentMesh: 1 +--- !u!114 &2220041284891186933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2220041284891186935} + 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: 21300000, guid: aaef6bac05ac36e48ade031f9a4230be, type: 3} + 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 diff --git a/game/Assets/Prefabs/UI/PlayerFreezeUI.prefab.meta b/game/Assets/Prefabs/UI/PlayerFreezeUI.prefab.meta new file mode 100644 index 0000000..2764a4f --- /dev/null +++ b/game/Assets/Prefabs/UI/PlayerFreezeUI.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9cd4e8a96e33818468d6db4407b760e3 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/Scripts/Player/PlayerController.cs b/game/Assets/Scripts/Player/PlayerController.cs index 836b7f2..ea041f1 100644 --- a/game/Assets/Scripts/Player/PlayerController.cs +++ b/game/Assets/Scripts/Player/PlayerController.cs @@ -1,6 +1,9 @@ using Extensions; using UnityEngine; using NaughtyAttributes; +using Ktyl.Util; +using System.Collections; +using UnityEngine.UI; public class PlayerController : MonoBehaviour { @@ -71,6 +74,15 @@ public class PlayerController : MonoBehaviour private const float TAU = Mathf.PI * 2f; private const float HALF_PI = Mathf.PI / 2f; + private float timeSinceStop; + + [Header("Power Freeze")] + [SerializeField] + private SerialFloat objectTimeScale; + + [SerializeField] + private SerialFloat frozenTime; + private enum JumpState { None, @@ -152,6 +164,33 @@ public class PlayerController : MonoBehaviour } } + + private void UpdateFreeze( float dt) + { + if ( _powers.Freeze.CanConsume && _inputHandler.InputState.Freeze.GetRawValue() ) + { + _powers.Freeze.Consume(); + objectTimeScale.Value = 0f; + } + + if (_powers.Freeze.timeSinceConsume > frozenTime) + { + UnfreezeTime(); + } + + } + + private void UnfreezeTime() + { + objectTimeScale.Value = 1f; + } + + private void FreezeReset() + { + _powers.Freeze.Reset(); + } + + private void UpdateJump(float dt) { _fallTime = _grounded ? 0f : (_fallTime + dt); @@ -287,6 +326,7 @@ public class PlayerController : MonoBehaviour UpdateJump( dt ); UpdateLook( dt ); UpdateBlink( dt ); + UpdateFreeze( dt ); UpdateGravity( dt ); UpdateDrag( dt ); UpdateMovement( dt ); diff --git a/game/Assets/Scripts/Player/PlayerInputHandler.cs b/game/Assets/Scripts/Player/PlayerInputHandler.cs index b70fc6f..a92d446 100644 --- a/game/Assets/Scripts/Player/PlayerInputHandler.cs +++ b/game/Assets/Scripts/Player/PlayerInputHandler.cs @@ -24,15 +24,17 @@ public class PlayerInputHandler : MonoBehaviour public BufferedInput Jump; public BufferedInput Blink; public BufferedInput Use; + public BufferedInput Freeze; public CameraRelativeInput Move; public Vector2 Look; public float MoveRotation; - public PlayerInputState( float jumpBuffer, float blinkBuffer, float useBuffer ) + public PlayerInputState( float jumpBuffer, float blinkBuffer, float useBuffer , float freezeBuffer) { Jump = new BufferedInput( jumpBuffer ); Blink = new BufferedInput( blinkBuffer ); Use = new BufferedInput( useBuffer ); + Freeze = new BufferedInput( freezeBuffer ); Move = new CameraRelativeInput(); Look = Vector2.zero; } @@ -42,6 +44,7 @@ public class PlayerInputHandler : MonoBehaviour Jump.Update(deltaTime); Blink.Update(deltaTime); Use.Update(deltaTime); + Freeze.Update(deltaTime); } } @@ -51,11 +54,12 @@ public class PlayerInputHandler : MonoBehaviour private void Awake() { - _state = new PlayerInputState( - _inputSettings.JumpBufferTime, - _inputSettings.BlinkBufferTime, - _inputSettings.UseBufferTime - ); + _state = new PlayerInputState( + _inputSettings.JumpBufferTime, + _inputSettings.BlinkBufferTime, + _inputSettings.UseBufferTime, + _inputSettings.FreezeBufferTime + ) ; // run a first time update to ensure the dialogue system has an updated // value for the player's input control scheme @@ -64,7 +68,7 @@ public class PlayerInputHandler : MonoBehaviour private void FixedUpdate() { - _state.Update( Time.fixedDeltaTime ); + _state.Update( Time.fixedDeltaTime); float cameraRotation = _camera.transform.rotation.eulerAngles.y; _state.Move.SetAngle(-cameraRotation); @@ -92,4 +96,10 @@ public class PlayerInputHandler : MonoBehaviour if(context.started) EventHandler.current.ArtefactPickUp(_nearbyArtefactID.Value); } + + public void Freeze(InputAction.CallbackContext context) + { + _state.Freeze.Set( context.ReadValueAsButton() ); + + } } \ No newline at end of file diff --git a/game/Assets/Scripts/Player/PlayerInputSettings.cs b/game/Assets/Scripts/Player/PlayerInputSettings.cs index c5e0b5c..6f243be 100644 --- a/game/Assets/Scripts/Player/PlayerInputSettings.cs +++ b/game/Assets/Scripts/Player/PlayerInputSettings.cs @@ -8,7 +8,7 @@ public class PlayerInputSettings : ScriptableObject public float JumpBufferTime => _jumpBufferTime; public float BlinkBufferTime => _blinkBufferTime; public float UseBufferTime => _useBufferTime; - + public float FreezeBufferTime => _freezeBufferTime; public float MouseSensitivity => _mouseSens; public float JoypadSensitivity => _joypadSens; @@ -22,6 +22,9 @@ public class PlayerInputSettings : ScriptableObject private float _useBufferTime; [SerializeField] + private float _freezeBufferTime; + + [SerializeField] private float _mouseSens; [SerializeField] diff --git a/game/Assets/Scripts/Player/PlayerPower.cs b/game/Assets/Scripts/Player/PlayerPower.cs index 92fe77f..3235e51 100644 --- a/game/Assets/Scripts/Player/PlayerPower.cs +++ b/game/Assets/Scripts/Player/PlayerPower.cs @@ -7,26 +7,34 @@ using UnityEngine.Events; [CreateAssetMenu(menuName = "KernelPanic/Player/Power", fileName = "PlayerPower.asset")] public class PlayerPower : ScriptableObject { + + [SerializeField] private bool _regenerateOnGround; [SerializeField] private bool _regenerateInAir; - - [SerializeField] - private float _regenerateTime; + + + public float regenerateTime => _regenerateTime; + [SerializeField] private float _regenerateTime; private bool _unlocked; private bool _cheated; private bool _consumed; - - private float _timeSinceConsume; + + public float cooldown => _cooldown; + private float _cooldown; + + public float timeSinceConsume => _timeSinceConsume; + public float _timeSinceConsume; private UnityEvent _onUnlock = new UnityEvent(); public UnityEvent OnUnlock => _onUnlock; public void UpdatePower( float deltaTime, bool cheat, bool grounded) { + _cheated = cheat; bool regenerate = grounded ? _regenerateOnGround : _regenerateInAir; @@ -34,9 +42,11 @@ public class PlayerPower : ScriptableObject if ( _consumed && regenerate ) { _timeSinceConsume += deltaTime; - + _cooldown = _regenerateTime - timeSinceConsume; + if ( _timeSinceConsume > _regenerateTime ) { + this.Reset(); } } @@ -52,6 +62,7 @@ public class PlayerPower : ScriptableObject { _consumed = false; _timeSinceConsume = 0f; + _cooldown = 0f; } public void Unlock() diff --git a/game/Assets/Scripts/Player/PlayerPowers.cs b/game/Assets/Scripts/Player/PlayerPowers.cs index 8ddb7fa..a1a9ae1 100644 --- a/game/Assets/Scripts/Player/PlayerPowers.cs +++ b/game/Assets/Scripts/Player/PlayerPowers.cs @@ -12,6 +12,9 @@ public class PlayerPowers : MonoBehaviour [SerializeField] private bool _cheatBoost; + [SerializeField] + private bool _cheatFreeze; + [Header( "References" )] [SerializeField] private PlayerPower _blink; @@ -19,12 +22,17 @@ public class PlayerPowers : MonoBehaviour [SerializeField] private PlayerPower _boost; + [SerializeField] + private PlayerPower _freeze; + public PlayerPower Blink => _blink; public PlayerPower Boost => _boost; + public PlayerPower Freeze => _freeze; public void UpdatePowers( float dt, bool grounded ) { _blink.UpdatePower( dt, _cheatBlink, grounded ); _boost.UpdatePower( dt, _cheatBoost, grounded ); + _freeze.UpdatePower(dt, _cheatFreeze, grounded); } } \ No newline at end of file diff --git a/game/Assets/Scripts/Traps/FallawayFloor.cs b/game/Assets/Scripts/Traps/FallawayFloor.cs index 683b716..57907b9 100644 --- a/game/Assets/Scripts/Traps/FallawayFloor.cs +++ b/game/Assets/Scripts/Traps/FallawayFloor.cs @@ -1,3 +1,4 @@ +using Ktyl.Util; using System; using System.Collections; using System.Collections.Generic; @@ -15,6 +16,7 @@ public class FallawayFloor : MonoBehaviour public Material dissolve; [SerializeField] private Renderer _renderer; + [SerializeField] private SerialFloat objectTimeScale; [SerializeField] private TrapSettings _settings; [SerializeField] private GameObject _graphics; @@ -50,7 +52,27 @@ public class FallawayFloor : MonoBehaviour { if (!_triggered && other.CompareTag("Player")) { - StartCoroutine(Fall()); + // Start the Destroy floor coroutine and switch to the dissolve material. + if (objectTimeScale != 0) + { + StartCoroutine(Fall()); + _renderer.material = dissolve; + } + + } + } + + //The platform gets destroyed after the player resumes frozen time on a platform + private void OnTriggerStay(Collider other) + { + if (!_triggered && other.CompareTag("Player")) + { + // Start the Destroy floor coroutine and switch to the dissolve material. + if (objectTimeScale != 0) + { + StartCoroutine(Fall()); + _renderer.material = dissolve; + } } } diff --git a/game/Assets/Scripts/Traps/objectTimeScale.asset b/game/Assets/Scripts/Traps/objectTimeScale.asset new file mode 100644 index 0000000..b5f4e0a --- /dev/null +++ b/game/Assets/Scripts/Traps/objectTimeScale.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76553ada4233edc458c3fed9b69e128f, type: 3} + m_Name: objectTimeScale + m_EditorClassIdentifier: + _initialValue: 1 + _readOnly: 0 diff --git a/game/Assets/Scripts/Traps/objectTimeScale.asset.meta b/game/Assets/Scripts/Traps/objectTimeScale.asset.meta new file mode 100644 index 0000000..88d949c --- /dev/null +++ b/game/Assets/Scripts/Traps/objectTimeScale.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9b68e167db44c0c42837e9a679da964e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/Scripts/UI/FreezeUI.cs b/game/Assets/Scripts/UI/FreezeUI.cs new file mode 100644 index 0000000..217a361 --- /dev/null +++ b/game/Assets/Scripts/UI/FreezeUI.cs @@ -0,0 +1,44 @@ +using Ktyl.Util; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; + +public class FreezeUI : MonoBehaviour +{ + [SerializeField] + private Image cooldownImage; + + [SerializeField] + private PlayerPower freeze; + + [SerializeField] + private GameObject freezePanel; + + [SerializeField] + private SerialFloat frozenTime; + + private float cooldownTimer = 0f; + + public void updateCooldownUI(float rawCooldownTimer, float regenerateTime, float timeSinceConsume) + { + if (rawCooldownTimer <= 0) + cooldownTimer = 0; + else + cooldownTimer = rawCooldownTimer / regenerateTime; + + cooldownImage.fillAmount = cooldownTimer; + + if (rawCooldownTimer > frozenTime) + freezePanel.SetActive(true); + else + freezePanel.SetActive(false); + } + + + + private void Update() + { + updateCooldownUI(freeze.cooldown, freeze.regenerateTime, freeze.timeSinceConsume); + } +} diff --git a/game/Assets/Scripts/UI/FreezeUI.cs.meta b/game/Assets/Scripts/UI/FreezeUI.cs.meta new file mode 100644 index 0000000..e69007a --- /dev/null +++ b/game/Assets/Scripts/UI/FreezeUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7befeb001df190b4b8ff21ffa8aa3eec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/Settings/Input/PlayerControls.inputactions b/game/Assets/Settings/Input/PlayerControls.inputactions index 02f5510..75e9147 100644 --- a/game/Assets/Settings/Input/PlayerControls.inputactions +++ b/game/Assets/Settings/Input/PlayerControls.inputactions @@ -44,6 +44,14 @@ "expectedControlType": "Button", "processors": "", "interactions": "" + }, + { + "name": "Freeze", + "type": "Button", + "id": "29f1599e-fe43-47df-ad25-8e712263d0ab", + "expectedControlType": "Button", + "processors": "", + "interactions": "" } ], "bindings": [ @@ -200,6 +208,28 @@ "action": "Blink", "isComposite": false, "isPartOfComposite": false + }, + { + "name": "", + "id": "8c9e09a3-477e-4760-bdba-f81beaec4988", + "path": "/g", + "interactions": "", + "processors": "", + "groups": "PCMR", + "action": "Freeze", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "6774e0ae-b8a1-4146-b779-01bbab6de14b", + "path": "/buttonEast", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Freeze", + "isComposite": false, + "isPartOfComposite": false } ] }, diff --git a/game/Assets/Settings/Player/PlayerInputSettings.asset b/game/Assets/Settings/Player/PlayerInputSettings.asset index ef08d15..766e845 100644 --- a/game/Assets/Settings/Player/PlayerInputSettings.asset +++ b/game/Assets/Settings/Player/PlayerInputSettings.asset @@ -15,5 +15,6 @@ MonoBehaviour: _jumpBufferTime: 0.1 _blinkBufferTime: 0.1 _useBufferTime: 0.1 + _freezeBufferTime: 2 _mouseSens: 0.15 _joypadSens: 1 diff --git a/game/Assets/Settings/Player/Powers/Freeze.asset b/game/Assets/Settings/Player/Powers/Freeze.asset new file mode 100644 index 0000000..ae6e1f5 --- /dev/null +++ b/game/Assets/Settings/Player/Powers/Freeze.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 24d28ac60e22b5547b2beb8679625039, type: 3} + m_Name: Freeze + m_EditorClassIdentifier: + _regenerateOnGround: 1 + _regenerateInAir: 1 + _regenerateTime: 7 + _timeSinceConsume: 0 diff --git a/game/Assets/Settings/Player/Powers/Freeze.asset.meta b/game/Assets/Settings/Player/Powers/Freeze.asset.meta new file mode 100644 index 0000000..7b81e61 --- /dev/null +++ b/game/Assets/Settings/Player/Powers/Freeze.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0cd9cf6494bb6f54d9b97631010d780e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/Settings/Player/Powers/frozenTime.asset b/game/Assets/Settings/Player/Powers/frozenTime.asset new file mode 100644 index 0000000..f6302e9 --- /dev/null +++ b/game/Assets/Settings/Player/Powers/frozenTime.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76553ada4233edc458c3fed9b69e128f, type: 3} + m_Name: frozenTime + m_EditorClassIdentifier: + _initialValue: 3 + _readOnly: 0 diff --git a/game/Assets/Settings/Player/Powers/frozenTime.asset.meta b/game/Assets/Settings/Player/Powers/frozenTime.asset.meta new file mode 100644 index 0000000..303a945 --- /dev/null +++ b/game/Assets/Settings/Player/Powers/frozenTime.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19273ba4ac237ab4381926cfb195dda8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/UI/PlayerUI.meta b/game/Assets/UI/PlayerUI.meta new file mode 100644 index 0000000..ed0b268 --- /dev/null +++ b/game/Assets/UI/PlayerUI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19008748323c67c42ba1b644df014f55 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/UI/PlayerUI/Cooldown.meta b/game/Assets/UI/PlayerUI/Cooldown.meta new file mode 100644 index 0000000..3440643 --- /dev/null +++ b/game/Assets/UI/PlayerUI/Cooldown.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 094334fe2c676634a87026c228e6aeeb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/UI/PlayerUI/Cooldown/3702524 1.jpg b/game/Assets/UI/PlayerUI/Cooldown/3702524 1.jpg new file mode 100644 index 0000000..4ee9535 --- /dev/null +++ b/game/Assets/UI/PlayerUI/Cooldown/3702524 1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c75bcb3ef6e72ae527aa33c2e1d2be6c8bced00325d8dcc47c78d6ccd6ba045 +size 175542 diff --git a/game/Assets/UI/PlayerUI/Cooldown/3702524 1.jpg.meta b/game/Assets/UI/PlayerUI/Cooldown/3702524 1.jpg.meta new file mode 100644 index 0000000..17ec0c3 --- /dev/null +++ b/game/Assets/UI/PlayerUI/Cooldown/3702524 1.jpg.meta @@ -0,0 +1,144 @@ +fileFormatVersion: 2 +guid: a11777191ca1ac140accf07b15900e79 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 2 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/game/Assets/UI/PlayerUI/Cooldown/vector-hourglass-design-drawing-isolated-illustration-177176959.jpg b/game/Assets/UI/PlayerUI/Cooldown/vector-hourglass-design-drawing-isolated-illustration-177176959.jpg new file mode 100644 index 0000000..8131498 --- /dev/null +++ b/game/Assets/UI/PlayerUI/Cooldown/vector-hourglass-design-drawing-isolated-illustration-177176959.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3dae6b02d7af4d7083509b8902be95f4139f8280e2c08bc71e253f2d19182d2 +size 55547 diff --git a/game/Assets/UI/PlayerUI/Cooldown/vector-hourglass-design-drawing-isolated-illustration-177176959.jpg.meta b/game/Assets/UI/PlayerUI/Cooldown/vector-hourglass-design-drawing-isolated-illustration-177176959.jpg.meta new file mode 100644 index 0000000..1accbe0 --- /dev/null +++ b/game/Assets/UI/PlayerUI/Cooldown/vector-hourglass-design-drawing-isolated-illustration-177176959.jpg.meta @@ -0,0 +1,144 @@ +fileFormatVersion: 2 +guid: aaef6bac05ac36e48ade031f9a4230be +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 2 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: