From 345a03cd9a46df7c926b6a17228a6290b2702702 Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Mon, 7 Aug 2023 15:07:36 +0200 Subject: [PATCH] zoom out beginnings --- Assets/Resources/Games/monkeyWatch.prefab | 390 +++++++++++++++++- .../Scripts/Games/MonkeyWatch/MonkeyWatch.cs | 38 +- .../MonkeyWatch/WatchBackgroundHandler.cs | 89 ++++ .../WatchBackgroundHandler.cs.meta | 11 + .../Games/MonkeyWatch/WatchMonkeyHandler.cs | 9 + 5 files changed, 534 insertions(+), 3 deletions(-) create mode 100644 Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs create mode 100644 Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs.meta diff --git a/Assets/Resources/Games/monkeyWatch.prefab b/Assets/Resources/Games/monkeyWatch.prefab index 1f4c71ea0..1c7e94380 100644 --- a/Assets/Resources/Games/monkeyWatch.prefab +++ b/Assets/Resources/Games/monkeyWatch.prefab @@ -8082,6 +8082,38 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1710089362700260346 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8098665359217660211} + m_Layer: 0 + m_Name: MinuteArrowAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8098665359217660211 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1710089362700260346} + 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: 3719911598080965880} + m_Father: {fileID: 6867432200927946216} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1712578900686338385 GameObject: m_ObjectHideFlags: 0 @@ -8923,6 +8955,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1993367001534553893 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6077857673690518966} + - component: {fileID: 7398802270788821617} + m_Layer: 0 + m_Name: MiddleMonkey + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6077857673690518966 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993367001534553893} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 10, y: 10, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6867432200927946216} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &7398802270788821617 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1993367001534553893} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 1 + m_Sprite: {fileID: 387254095, guid: d68c7b31d1e251444875fd4ecee66b41, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.61, y: 0.375} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &2019954115091572790 GameObject: m_ObjectHideFlags: 0 @@ -9633,6 +9749,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &2470011015083839347 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6909173705925514617} + - component: {fileID: 764260634936754312} + m_Layer: 0 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6909173705925514617 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2470011015083839347} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 4.78, z: 0} + m_LocalScale: {x: 15, y: 15, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1316911133975083630} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &764260634936754312 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2470011015083839347} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -344685140, guid: d68c7b31d1e251444875fd4ecee66b41, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.385, y: 0.7825} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &2741386657687501746 GameObject: m_ObjectHideFlags: 0 @@ -9717,6 +9917,90 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &2801960370945097393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3719911598080965880} + - component: {fileID: 407778607216811145} + m_Layer: 0 + m_Name: arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3719911598080965880 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2801960370945097393} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.14, y: 4.83, z: 0} + m_LocalScale: {x: 15, y: 15, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8098665359217660211} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &407778607216811145 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2801960370945097393} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -1738514037, guid: d68c7b31d1e251444875fd4ecee66b41, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.385, y: 0.7825} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &2852617849116252196 GameObject: m_ObjectHideFlags: 0 @@ -15444,7 +15728,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!4 &6867432200927946216 Transform: m_ObjectHideFlags: 0 @@ -15462,6 +15746,9 @@ Transform: - {fileID: 7199180915825702748} - {fileID: 7049073935384626292} - {fileID: 301012180058913950} + - {fileID: 6077857673690518966} + - {fileID: 8098665359217660211} + - {fileID: 1316911133975083630} m_Father: {fileID: 5742479390175277464} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -18419,6 +18706,38 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &5058174274824090976 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1316911133975083630} + m_Layer: 0 + m_Name: HourArrowAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1316911133975083630 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5058174274824090976} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6909173705925514617} + m_Father: {fileID: 6867432200927946216} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} --- !u!1 &5121662030544586575 GameObject: m_ObjectHideFlags: 0 @@ -19587,6 +19906,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 5742479390175277464} + - component: {fileID: 2778587498033096836} m_Layer: 0 m_Name: Background m_TagString: Untagged @@ -19614,6 +19934,73 @@ Transform: m_Father: {fileID: 7676047881968251921} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2778587498033096836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5940392269407869173} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c89276e2caf959949a2a775c9f228443, type: 3} + m_Name: + m_EditorClassIdentifier: + srsIn: + - {fileID: 6576655169905412895} + - {fileID: 1683509158745457639} + - {fileID: 341930091143779227} + - {fileID: 2014547234775015710} + - {fileID: 2799248219202753514} + - {fileID: 5289271345074894643} + - {fileID: 2195437777118270674} + - {fileID: 3389718538327922474} + - {fileID: 7193855953442073020} + - {fileID: 1428702199025382724} + - {fileID: 4203307647724611259} + - {fileID: 3792696682371010104} + - {fileID: 4978892731329404396} + - {fileID: 7649741656760582396} + - {fileID: 4325595559651492236} + - {fileID: 66885711739244631} + - {fileID: 7021732682976963752} + - {fileID: 1351829155119332187} + - {fileID: 65418943645001768} + - {fileID: 9186107659252623736} + - {fileID: 3360358353737137235} + - {fileID: 6546113317150241094} + - {fileID: 4536290325409635556} + - {fileID: 6288831235422810419} + - {fileID: 7707404918191502039} + - {fileID: 6527011856602773349} + - {fileID: 3505644016404757486} + - {fileID: 3768787291868644565} + - {fileID: 6161618254149356713} + - {fileID: 3165267991157936857} + - {fileID: 8311384100629455257} + - {fileID: 7548934123502530799} + - {fileID: 3864762859901418426} + - {fileID: 7215451786036951506} + - {fileID: 9131673231064330994} + - {fileID: 6472646989476103599} + - {fileID: 5031353987451051777} + - {fileID: 8594920328658347905} + - {fileID: 801577464675020442} + - {fileID: 3729182383991825099} + - {fileID: 9029439302064371198} + - {fileID: 2879327526580182438} + - {fileID: 8520775720112498628} + srsOut: + - {fileID: 6144403601831840085} + - {fileID: 6934316167867278148} + - {fileID: 7491976730687049541} + - {fileID: 8312654235528392178} + - {fileID: 5640575802332686316} + - {fileID: 7398802270788821617} + - {fileID: 407778607216811145} + - {fileID: 764260634936754312} + anchorHour: {fileID: 1316911133975083630} + anchorMinute: {fileID: 8098665359217660211} --- !u!1 &5941324121601745444 GameObject: m_ObjectHideFlags: 0 @@ -20257,6 +20644,7 @@ MonoBehaviour: cameraMoveable: {fileID: 7676047881968251921} monkeyClockArrow: {fileID: 8220690735241008560} monkeyHandler: {fileID: 8572779002997729184} + backgroundHandler: {fileID: 2778587498033096836} --- !u!1 &6181011653585253546 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs b/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs index 070d4547d..58629d0bb 100644 --- a/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs +++ b/Assets/Scripts/Games/MonkeyWatch/MonkeyWatch.cs @@ -37,7 +37,7 @@ namespace HeavenStudio.Games.Loaders defaultLength = 2f, parameters = new List() { - new Param("min", new EntityTypes.Integer(0, 60, 0), "Start Minutes", "1 minute is equivalent to 1 monkey.") + new Param("min", new EntityTypes.Integer(0, 59, 0), "Set Starting Second", "1 second is equivalent to 1 monkey.") } }, new GameAction("off", "Pink Monkeys") @@ -87,6 +87,22 @@ namespace HeavenStudio.Games.Loaders new GameAction("offCustom", "Custom Pink Monkey") { defaultLength = 0.5f + }, + new GameAction("zoomOut", "Zoom Out") + { + function = delegate + { + var e = eventCaller.currentEntity; + MonkeyWatch.instance.ZoomOut(e.beat, e.length, e["timeMode"], e["hour"], e["minute"]); + }, + resizable = true, + defaultLength = 4f, + parameters = new List() + { + new Param("timeMode", MonkeyWatch.TimeMode.RealTime, "Time Mode", "Will the clock set the time to the current time or a certain time?"), + new Param("hour", new EntityTypes.Integer(0, 12, 3), "Hour"), + new Param("minute", new EntityTypes.Integer(0, 59, 0), "Minute") + } } }); } @@ -96,10 +112,15 @@ namespace HeavenStudio.Games.Loaders namespace HeavenStudio.Games { using Scripts_MonkeyWatch; - using System.Reflection; public class MonkeyWatch : Minigame { + public enum TimeMode + { + RealTime, + SetTime + } + private const float degreePerMonkey = 6f; public static MonkeyWatch instance; @@ -110,6 +131,7 @@ namespace HeavenStudio.Games [SerializeField] private Transform cameraMoveable; [SerializeField] private MonkeyClockArrow monkeyClockArrow; [SerializeField] private WatchMonkeyHandler monkeyHandler; + [SerializeField] private WatchBackgroundHandler backgroundHandler; private float lastAngle = 0f; private int cameraIndex = 0; @@ -139,6 +161,18 @@ namespace HeavenStudio.Games monkeyClockArrow.PlayerClap(big, barely, false); } + public void ZoomOut(double beat, float length, int timeMode, int hours, int minutes) + { + backgroundHandler.SetFade(beat, 0.25f, true, (TimeMode)timeMode, hours, minutes); + BeatAction.New(instance.gameObject, new List() + { + new BeatAction.Action(beat + length - 0.25, delegate + { + backgroundHandler.SetFade(beat + length - 0.25, 0.25f, false, (TimeMode)timeMode, hours, minutes); + }) + }); + } + private double persistBeat = 0; private double theNextGameSwitchBeat = double.MaxValue; private double clappingBeat = 0; diff --git a/Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs b/Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs new file mode 100644 index 000000000..c4543dd6a --- /dev/null +++ b/Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs @@ -0,0 +1,89 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using HeavenStudio.Util; +using Starpelly; + +namespace HeavenStudio.Games.Scripts_MonkeyWatch +{ + public class WatchBackgroundHandler : MonoBehaviour + { + [Header("Components")] + [SerializeField] private SpriteRenderer[] srsIn; + [SerializeField] private SpriteRenderer[] srsOut; + [SerializeField] private Transform anchorHour; + [SerializeField] private Transform anchorMinute; + + private double fadeBeat = -1; + private float fadeLength = 0f; + private bool fadeOut = false; + private bool realTime = true; + + private void Awake() + { + Update(); + } + + private void Update() + { + var cond = Conductor.instance; + + float normalizedBeat = Mathf.Clamp01(cond.GetPositionFromBeat(fadeBeat, fadeLength)); + + if (fadeOut) + { + foreach (var s in srsIn) + { + s.color = new Color(s.color.r, s.color.g, s.color.b, 1 - normalizedBeat); + } + + foreach (var s in srsOut) + { + s.color = new Color(s.color.r, s.color.g, s.color.b, normalizedBeat); + } + } + else + { + foreach (var s in srsIn) + { + s.color = new Color(s.color.r, s.color.g, s.color.b, normalizedBeat); + } + + foreach (var s in srsOut) + { + s.color = new Color(s.color.r, s.color.g, s.color.b, 1 - normalizedBeat); + } + } + + if (realTime) + { + var nowTime = System.DateTime.Now; + + SetArrowsToTime(nowTime.Hour, nowTime.Minute); + } + } + + public void SetFade(double beat, float length, bool outFade, MonkeyWatch.TimeMode timeMode, int hours, int minutes) + { + fadeBeat = beat; + fadeLength = length; + fadeOut = outFade; + realTime = timeMode == MonkeyWatch.TimeMode.RealTime; + if (!realTime) + { + SetArrowsToTime(hours, minutes); + } + Update(); + } + + private void SetArrowsToTime(int hours, int minutes) + { + float normalizedHour = Mathp.Normalize(hours, 0, 12); + anchorHour.localEulerAngles = new Vector3(0, 0, -Mathf.LerpUnclamped(0, 360, normalizedHour)); + + float normalizedMinute = Mathp.Normalize(minutes, 0, 60); + anchorMinute.localEulerAngles = new Vector3(0, 0, -Mathf.LerpUnclamped(0, 360, normalizedMinute)); + } + } +} + diff --git a/Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs.meta b/Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs.meta new file mode 100644 index 000000000..2daca0e27 --- /dev/null +++ b/Assets/Scripts/Games/MonkeyWatch/WatchBackgroundHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c89276e2caf959949a2a775c9f228443 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs b/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs index a3bf6bf2a..b417f9341 100644 --- a/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs +++ b/Assets/Scripts/Games/MonkeyWatch/WatchMonkeyHandler.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using HeavenStudio.Util; +using UnityEngine.Rendering; namespace HeavenStudio.Games.Scripts_MonkeyWatch { @@ -24,9 +25,17 @@ namespace HeavenStudio.Games.Scripts_MonkeyWatch private void Awake() { game = MonkeyWatch.instance; + int sortIndex = 0; + bool goDown = false; for (int i = 0; i < 60; i++) { watchHoles.Add(transform.GetChild(i)); + watchHoles[i].GetComponent().sortingOrder = sortIndex; + sortIndex += goDown ? -1 : 1; + if (sortIndex >= 30) + { + goDown = true; + } } }