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;
+ }
}
}