zoom out beginnings

This commit is contained in:
Rapandrasmus 2023-08-07 15:07:36 +02:00
parent 4515b9e004
commit 345a03cd9a
5 changed files with 534 additions and 3 deletions

View file

@ -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

View file

@ -37,7 +37,7 @@ namespace HeavenStudio.Games.Loaders
defaultLength = 2f,
parameters = new List<Param>()
{
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<Param>()
{
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<BeatAction.Action>()
{
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;

View file

@ -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));
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c89276e2caf959949a2a775c9f228443
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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<SortingGroup>().sortingOrder = sortIndex;
sortIndex += goDown ? -1 : 1;
if (sortIndex >= 30)
{
goDown = true;
}
}
}