From 2abfaf87bbc12241134b47bee4ecd5a4f5d9a6c0 Mon Sep 17 00:00:00 2001
From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com>
Date: Tue, 5 Dec 2023 23:38:52 +0100
Subject: [PATCH 1/3] Auto Bop Internal Rework + Bug Fixes (#589)
* fixed blue bear
* fixed tap trial bug
* see saw fix
* Auto bop rework
---
.../BlueBear/Animations/Flashback0Exit.anim | 38 +--
.../Animation/Guy/Jump_OutOut_Fall.anim | 268 +++++++++---------
Assets/Scripts/Conductor.cs | 4 +-
Assets/Scripts/Games/BlueBear/BlueBear.cs | 24 +-
Assets/Scripts/Games/BlueBear/Treat.cs | 2 +-
.../Games/BoardMeeting/BoardMeeting.cs | 6 +-
Assets/Scripts/Games/CatchyTune/CatchyTune.cs | 18 +-
.../Games/CheerReaders/CheerReaders.cs | 6 +-
Assets/Scripts/Games/DJSchool/DJSchool.cs | 7 +-
Assets/Scripts/Games/DJSchool/Student.cs | 4 +-
Assets/Scripts/Games/DogNinja/DogNinja.cs | 6 +-
Assets/Scripts/Games/DoubleDate/DoubleDate.cs | 6 +-
.../DrummingPractice/DrummingPractice.cs | 9 +-
Assets/Scripts/Games/FanClub/FanClub.cs | 10 +-
Assets/Scripts/Games/KarateMan/KarateMan.cs | 5 +-
.../Scripts/Games/MeatGrinder/MeatGrinder.cs | 6 +-
Assets/Scripts/Games/Minigame.cs | 77 +++++
Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs | 30 +-
.../Games/OctopusMachine/OctopusMachine.cs | 5 +-
.../Scripts/Games/RhythmRally/RhythmRally.cs | 6 +-
.../Scripts/Games/RhythmSomen/RhythmSomen.cs | 7 +-
Assets/Scripts/Games/Ringside/Ringside.cs | 7 +-
.../Games/SamuraiSliceNtr/SamuraiSliceNtr.cs | 15 +-
Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs | 25 ++
Assets/Scripts/Games/SpaceDance/SpaceDance.cs | 5 +-
Assets/Scripts/Games/TapTrial/TapTrial.cs | 10 +-
Assets/Scripts/Games/TheDazzles/TheDazzles.cs | 6 +-
Assets/Scripts/Games/TossBoys/TossBoys.cs | 6 +-
Assets/Scripts/Games/TrickClass/TrickClass.cs | 3 +-
29 files changed, 353 insertions(+), 268 deletions(-)
diff --git a/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim b/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim
index 8f7c9271..9d5e6701 100644
--- a/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim
+++ b/Assets/Resources/Sprites/Games/BlueBear/Animations/Flashback0Exit.anim
@@ -20,17 +20,17 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: {x: 1.258, y: 0.542, z: 0}
- inSlope: {x: -1.4679999, y: -0, z: -0}
- outSlope: {x: 0, y: 0.17200005, z: 0}
+ value: {x: 1.4, y: 0.68, z: 0}
+ inSlope: {x: -1.184, y: -0, z: -0}
+ outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.5
- value: {x: 1.258, y: 0.628, z: 0}
- inSlope: {x: -0, y: 0.17200005, z: -0}
+ value: {x: 1.4, y: 0.89, z: 0}
+ inSlope: {x: -0, y: 0.41999996, z: -0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
@@ -49,8 +49,8 @@ AnimationClip:
time: 0
value: 1
inSlope: 2
- outSlope: -2
- tangentMode: 69
+ outSlope: 0
+ tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
@@ -134,16 +134,16 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: 1.258
- inSlope: -1.4679999
+ value: 1.4
+ inSlope: -1.184
outSlope: 0
- tangentMode: 69
+ tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
- value: 1.258
+ value: 1.4
inSlope: -0
outSlope: 0
tangentMode: 69
@@ -162,17 +162,17 @@ AnimationClip:
m_Curve:
- serializedVersion: 3
time: 0
- value: 0.542
+ value: 0.68
inSlope: -0
- outSlope: 0.17200005
- tangentMode: 69
+ outSlope: 0
+ tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
- value: 0.628
- inSlope: 0.17200005
+ value: 0.89
+ inSlope: 0.41999996
outSlope: 0
tangentMode: 69
weightedMode: 0
@@ -193,7 +193,7 @@ AnimationClip:
value: 0
inSlope: -0
outSlope: 0
- tangentMode: 69
+ tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
@@ -220,8 +220,8 @@ AnimationClip:
time: 0
value: 1
inSlope: 2
- outSlope: -2
- tangentMode: 69
+ outSlope: 0
+ tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
diff --git a/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim b/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim
index 5eee94c7..3fef7a2f 100644
--- a/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim
+++ b/Assets/Resources/Sprites/Games/SeeSaw/Animation/Guy/Jump_OutOut_Fall.anim
@@ -6701,7 +6701,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
- path: HandL
+ path: FootR
classID: 4
script: {fileID: 0}
- curve:
@@ -6711,7 +6711,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
- path: HandL
+ path: FootR
classID: 4
script: {fileID: 0}
- curve:
@@ -6721,7 +6721,37 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
- path: HandL
+ path: FootR
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path: LegLowR
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path: LegLowR
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path: LegLowR
classID: 4
script: {fileID: 0}
- curve:
@@ -6761,7 +6791,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
- path: LegUpR
+ path: LegLowL
classID: 4
script: {fileID: 0}
- curve:
@@ -6771,7 +6801,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
- path: LegUpR
+ path: LegLowL
classID: 4
script: {fileID: 0}
- curve:
@@ -6781,7 +6811,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
- path: LegUpR
+ path: LegLowL
classID: 4
script: {fileID: 0}
- curve:
@@ -6911,7 +6941,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
- path: EyeL
+ path: EyeR
classID: 4
script: {fileID: 0}
- curve:
@@ -6921,7 +6951,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
- path: EyeL
+ path: EyeR
classID: 4
script: {fileID: 0}
- curve:
@@ -6931,7 +6961,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
- path: EyeL
+ path: EyeR
classID: 4
script: {fileID: 0}
- curve:
@@ -6971,7 +7001,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
- path: FootR
+ path: LegUpR
classID: 4
script: {fileID: 0}
- curve:
@@ -6981,7 +7011,7 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
- path: FootR
+ path: LegUpR
classID: 4
script: {fileID: 0}
- curve:
@@ -6991,7 +7021,97 @@ AnimationClip:
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
- path: FootR
+ path: LegUpR
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path: EyeL
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path: EyeL
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path: EyeL
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path: Head
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.z
+ path: HandL
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.y
+ path: HandL
+ classID: 4
+ script: {fileID: 0}
+ - curve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ attribute: m_LocalEulerAngles.x
+ path: HandL
classID: 4
script: {fileID: 0}
- curve:
@@ -7024,66 +7144,6 @@ AnimationClip:
path: Mouth
classID: 4
script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.z
- path: EyeR
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.y
- path: EyeR
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.x
- path: EyeR
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.z
- path: LegLowL
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.y
- path: LegLowL
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.x
- path: LegLowL
- classID: 4
- script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve: []
@@ -7120,7 +7180,7 @@ AnimationClip:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
- attribute: m_LocalEulerAngles.z
+ attribute: m_LocalEulerAngles.x
path: Woosh
classID: 4
script: {fileID: 0}
@@ -7140,70 +7200,10 @@ AnimationClip:
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
- attribute: m_LocalEulerAngles.x
+ attribute: m_LocalEulerAngles.z
path: Woosh
classID: 4
script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.z
- path: Head
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.y
- path: Head
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.x
- path: Head
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.x
- path: LegLowR
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.y
- path: LegLowR
- classID: 4
- script: {fileID: 0}
- - curve:
- serializedVersion: 2
- m_Curve: []
- m_PreInfinity: 2
- m_PostInfinity: 2
- m_RotationOrder: 4
- attribute: m_LocalEulerAngles.z
- path: LegLowR
- classID: 4
- script: {fileID: 0}
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
diff --git a/Assets/Scripts/Conductor.cs b/Assets/Scripts/Conductor.cs
index 5ee65b4b..0ee980b4 100644
--- a/Assets/Scripts/Conductor.cs
+++ b/Assets/Scripts/Conductor.cs
@@ -406,11 +406,11 @@ namespace HeavenStudio
public void LateUpdate()
{
- if (metronome && isPlaying)
+ if (isPlaying)
{
if (songPositionInBeatsAsDouble >= Math.Ceiling(startBeat) + _metronomeTally)
{
- metronomeSound = Util.SoundByte.PlayOneShot("metronome", Math.Ceiling(startBeat) + _metronomeTally);
+ if (metronome) metronomeSound = Util.SoundByte.PlayOneShot("metronome", Math.Ceiling(startBeat) + _metronomeTally);
_metronomeTally++;
}
}
diff --git a/Assets/Scripts/Games/BlueBear/BlueBear.cs b/Assets/Scripts/Games/BlueBear/BlueBear.cs
index 64f3d4da..1294097b 100644
--- a/Assets/Scripts/Games/BlueBear/BlueBear.cs
+++ b/Assets/Scripts/Games/BlueBear/BlueBear.cs
@@ -29,7 +29,7 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("setEmotion", "Emotion")
{
- function = delegate { var e = eventCaller.currentEntity; BlueBear.instance.SetEmotion(e["type"]); },
+ function = delegate { var e = eventCaller.currentEntity; BlueBear.instance.SetEmotion(e.beat, e["type"]); },
parameters = new List()
{
new Param("type", BlueBear.EmotionType.ClosedEyes, "Emotion", "Which emotion should the blue bear use?")
@@ -274,18 +274,18 @@ namespace HeavenStudio.Games
headAndBodyAnim.SetBool("ShouldOpenMouth", foodHolder.childCount != 0);
if (headAndBodyAnim.GetBool("ShouldOpenMouth"))
{
- _emotionCancelled = true;
+ _emotionCancelledBeat = Conductor.instance.songPositionInBeatsAsDouble;
}
if (PlayerInput.GetIsAction(InputAction_Left) && !IsExpectingInputNow(InputAction_Left.inputLockCategory))
{
SoundByte.PlayOneShotGame("blueBear/whiff", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-1, 2), false));
- Bite(true);
+ Bite(Conductor.instance.songPositionInBeatsAsDouble, true);
}
else if (PlayerInput.GetIsAction(InputAction_Right) && !IsExpectingInputNow(InputAction_Right.inputLockCategory))
{
SoundByte.PlayOneShotGame("blueBear/whiff", -1, SoundByte.GetPitchFromSemiTones(UnityEngine.Random.Range(-1, 2), false));
- Bite(false);
+ Bite(Conductor.instance.songPositionInBeatsAsDouble, false);
}
UpdateEmotions();
@@ -298,7 +298,7 @@ namespace HeavenStudio.Games
windAnim.SetScaledAnimationSpeed();
}
- private bool _emotionCancelled = false;
+ private double _emotionCancelledBeat = -1;
private int _emotionIndex = 0;
private List _allEmotionsStretch = new();
private EmotionStretchType _lastEmotion = EmotionStretchType.LookUp;
@@ -317,12 +317,11 @@ namespace HeavenStudio.Games
_emotionIndex++;
_lastEmotion = (EmotionStretchType)_allEmotionsStretch[_emotionIndex - 1]["type"];
crying = _lastEmotion == EmotionStretchType.StartCrying;
- _emotionCancelled = false;
UpdateEmotions();
return;
}
- if (beat >= e.beat && beat < e.beat + e.length && !_emotionCancelled)
+ if (beat >= e.beat && beat < e.beat + e.length && !(_emotionCancelledBeat >= e.beat && _emotionCancelledBeat < e.beat + e.length))
{
_lastEmotion = (EmotionStretchType)e["type"];
crying = _lastEmotion == EmotionStretchType.StartCrying;
@@ -388,9 +387,9 @@ namespace HeavenStudio.Games
windAnim.DoScaledAnimationAsync("Wind", 0.5f);
}
- public void Bite(bool left)
+ public void Bite(double beat, bool left)
{
- _emotionCancelled = true;
+ _emotionCancelledBeat = beat;
if (crying)
{
headAndBodyAnim.DoScaledAnimationAsync(left ? "CryBiteL" : "CryBiteR", 0.5f);
@@ -456,14 +455,15 @@ namespace HeavenStudio.Games
}
}
- public void SetEmotion(int emotion)
+ public void SetEmotion(double beat, int emotion)
{
- _emotionCancelled = true;
+ _emotionCancelledBeat = beat;
switch (emotion)
{
case (int)EmotionType.Neutral:
- //check if smiling then play "StopSmile"
headAndBodyAnim.DoScaledAnimationAsync("Idle", 0.5f);
+ if (_allEmotionsStretch.Count == 0 || _lastEmotion != EmotionStretchType.Smile) return;
+ headAndBodyAnim.DoScaledAnimationAsync("StopSmile", 0.5f);
crying = false;
break;
case (int)EmotionType.ClosedEyes:
diff --git a/Assets/Scripts/Games/BlueBear/Treat.cs b/Assets/Scripts/Games/BlueBear/Treat.cs
index 5d5e3f87..c039abde 100644
--- a/Assets/Scripts/Games/BlueBear/Treat.cs
+++ b/Assets/Scripts/Games/BlueBear/Treat.cs
@@ -68,7 +68,7 @@ namespace HeavenStudio.Games.Scripts_BlueBear
SoundByte.PlayOneShotGame("blueBear/chompDonut");
}
- game.Bite(isCake);
+ game.Bite(Conductor.instance.songPositionInBeatsAsDouble, isCake);
game.EatTreat();
SpawnCrumbs();
diff --git a/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs b/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs
index 845e6d2c..5967f6cd 100644
--- a/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs
+++ b/Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs
@@ -91,10 +91,8 @@ namespace HeavenStudio.Games
[SerializeField] List executives = new List();
public BMExecutive firstSpinner;
[SerializeField] float shakeIntensity = 0.5f;
- public bool shouldBop = true;
private bool assistantCanBop = true;
private bool executivesCanBop = true;
- public GameEvent bop = new GameEvent();
[NonSerialized] public Sound chairLoopSound = null;
int missCounter = 0;
private Tween shakeTween;
@@ -104,6 +102,7 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("boardMeeting", "bop", "auto");
InitExecutives();
}
@@ -145,7 +144,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (!shouldBop) return;
+ if (!BeatIsInBopRegion(beat)) return;
SingleBop();
}
@@ -166,7 +165,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool goBop, bool autoBop)
{
- shouldBop = autoBop;
if (goBop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/CatchyTune/CatchyTune.cs b/Assets/Scripts/Games/CatchyTune/CatchyTune.cs
index 5f250302..4be42598 100644
--- a/Assets/Scripts/Games/CatchyTune/CatchyTune.cs
+++ b/Assets/Scripts/Games/CatchyTune/CatchyTune.cs
@@ -80,10 +80,10 @@ namespace HeavenStudio.Games
public enum WhoBops
{
- Alalin,
- Plalin,
- Both,
- None
+ Alalin = 1,
+ Plalin = 2,
+ Both = 0,
+ None = 3
}
public enum Background
@@ -111,10 +111,6 @@ namespace HeavenStudio.Games
private double startSmile = 0;
private double stopSmile = 0;
- private bool bopLeft = true;
- private bool bopRight = true;
- public GameEvent bop = new GameEvent();
-
public static CatchyTune instance;
static List queuedFruits = new List();
struct QueuedFruit
@@ -184,6 +180,7 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("catchyTune", "bop", "bopAuto", false);
}
const float orangeoffset = 0.5f;
@@ -249,6 +246,9 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
+ int whoBopsAuto = BeatIsInBopRegionInt(beat);
+ bool bopLeft = whoBopsAuto == (int)WhoBops.Plalin || whoBopsAuto == (int)WhoBops.Both;
+ bool bopRight = whoBopsAuto == (int)WhoBops.Alalin || whoBopsAuto == (int)WhoBops.Both;
if (bopLeft && stopCatchLeft == 0)
{
plalinAnim.DoScaledAnimationAsync("bop", 0.5f);
@@ -323,8 +323,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, int whoBops, int whoBopsAuto)
{
- bopLeft = whoBopsAuto == (int)WhoBops.Plalin || whoBopsAuto == (int)WhoBops.Both;
- bopRight = whoBopsAuto == (int)WhoBops.Alalin || whoBopsAuto == (int)WhoBops.Both;
for (int i = 0; i < length; i++)
{
BeatAction.New(instance, new List()
diff --git a/Assets/Scripts/Games/CheerReaders/CheerReaders.cs b/Assets/Scripts/Games/CheerReaders/CheerReaders.cs
index 0af61ec2..b0673f68 100644
--- a/Assets/Scripts/Games/CheerReaders/CheerReaders.cs
+++ b/Assets/Scripts/Games/CheerReaders/CheerReaders.cs
@@ -163,7 +163,6 @@ namespace HeavenStudio.Games
Sound SpinningLoop;
[Header("Variables")]
[SerializeField] List posters = new List();
- bool shouldBop = true;
bool canBop = true;
public bool doingCue;
double cueLength;
@@ -171,7 +170,6 @@ namespace HeavenStudio.Games
bool shouldYay;
bool shouldDoSuccessZoom;
public bool shouldBeBlack = false;
- public GameEvent bop = new GameEvent();
int currentZoomIndex;
double currentZoomCamBeat;
float currentZoomCamLength;
@@ -230,6 +228,7 @@ namespace HeavenStudio.Games
void Awake()
{
instance = this;
+ SetupBopRegion("cheerReaders", "bop", "toggle2");
for (int i = 0; i < topMasks.Count; i++)
{
firstRow[i].posterBook = topMasks[i];
@@ -264,7 +263,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (!shouldBop) return;
+ if (!BeatIsInBopRegion(beat)) return;
BopSingle();
}
@@ -482,7 +481,6 @@ namespace HeavenStudio.Games
public void BopToggle(double beat, float length, bool startBop, bool bopAuto)
{
- shouldBop = bopAuto;
if (startBop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/DJSchool/DJSchool.cs b/Assets/Scripts/Games/DJSchool/DJSchool.cs
index 953c5239..c895d638 100644
--- a/Assets/Scripts/Games/DJSchool/DJSchool.cs
+++ b/Assets/Scripts/Games/DJSchool/DJSchool.cs
@@ -113,14 +113,12 @@ namespace HeavenStudio.Games
[SerializeField] private Student student;
[SerializeField] private GameObject djYellow;
private Animator djYellowAnim;
- private double lastReportedBeat = 0f;
public DJYellow djYellowScript;
[Header("Properties")]
public GameEvent bop = new GameEvent();
public bool djYellowHolding;
public bool andStop;
- public bool goBop;
public double beatOfInstance;
private bool djYellowBopLeft;
public bool shouldBeHolding = false;
@@ -138,7 +136,7 @@ namespace HeavenStudio.Games
djYellowAnim = djYellow.GetComponent();
djYellowScript = djYellow.GetComponent();
student.Init();
- goBop = true;
+ SetupBopRegion("djSchool", "bop", "toggle");
}
//For inactive game purposes
@@ -167,7 +165,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (!goBop) return;
+ if (!BeatIsInBopRegion(beat)) return;
if (student.isHolding)
{
student.anim.DoScaledAnimationAsync("HoldBop", 0.5f);
@@ -243,7 +241,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool isBopping, bool autoBop)
{
- goBop = autoBop;
if (isBopping)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/DJSchool/Student.cs b/Assets/Scripts/Games/DJSchool/Student.cs
index f85881ab..2a965660 100644
--- a/Assets/Scripts/Games/DJSchool/Student.cs
+++ b/Assets/Scripts/Games/DJSchool/Student.cs
@@ -258,7 +258,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
{
new BeatAction.Action(caller.timer + caller.startBeat + 1, delegate
{
- if (game.goBop)
+ if (game.BeatIsInBopRegion(caller.timer + caller.startBeat + 1))
{
game.djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.CrossEyed);
if (game.djYellowHolding) game.djYellowScript.Reverse();
@@ -278,7 +278,7 @@ namespace HeavenStudio.Games.Scripts_DJSchool
{
new BeatAction.Action(beat, delegate
{
- if (game.goBop)
+ if (game.BeatIsInBopRegion(beat))
{
game.djYellowScript.ChangeHeadSprite(DJYellow.DJExpression.CrossEyed);
if (game.djYellowHolding) game.djYellowScript.Reverse();
diff --git a/Assets/Scripts/Games/DogNinja/DogNinja.cs b/Assets/Scripts/Games/DogNinja/DogNinja.cs
index 388d8a62..01e9e477 100644
--- a/Assets/Scripts/Games/DogNinja/DogNinja.cs
+++ b/Assets/Scripts/Games/DogNinja/DogNinja.cs
@@ -140,9 +140,7 @@ namespace HeavenStudio.Games
[SerializeField] Sprite[] ObjectTypes;
- private double lastReportedBeat = 0f;
private bool birdOnScreen = false;
- bool dontBop = false;
private const string sfxNum = "dogNinja/";
public static DogNinja instance;
@@ -200,6 +198,7 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("dogNinja", "Bop", "auto");
}
void OnDestroy()
@@ -216,7 +215,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (dontBop) return;
+ if (!BeatIsInBopRegion(beat)) return;
DogAnim.DoScaledAnimationAsync("Bop", 0.5f);
}
@@ -267,7 +266,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool auto, bool bop)
{
- dontBop = !auto;
if (!bop) return;
List actions = new();
diff --git a/Assets/Scripts/Games/DoubleDate/DoubleDate.cs b/Assets/Scripts/Games/DoubleDate/DoubleDate.cs
index e82f6aa5..e2cc3724 100644
--- a/Assets/Scripts/Games/DoubleDate/DoubleDate.cs
+++ b/Assets/Scripts/Games/DoubleDate/DoubleDate.cs
@@ -76,9 +76,7 @@ namespace HeavenStudio.Games
[SerializeField] public float shadowDepthScaleMax;
[SerializeField] SuperCurveObject.Path[] ballBouncePaths;
double lastGirlGacha = double.MinValue;
- bool shouldBop = true;
bool canBop = true;
- GameEvent bop = new GameEvent();
public static DoubleDate instance;
public static List queuedBalls = new List();
[NonSerialized] public double lastHitWeasel = double.MinValue;
@@ -132,6 +130,7 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("doubleDate", "bop", "autoBop");
}
private void Start() {
@@ -140,7 +139,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (shouldBop) SingleBop();
+ if (BeatIsInBopRegion(beat)) SingleBop();
}
void Update()
@@ -198,7 +197,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool goBop, bool autoBop)
{
- shouldBop = autoBop;
if (goBop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs
index 071711e0..ed76d2fe 100644
--- a/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs
+++ b/Assets/Scripts/Games/DrummingPractice/DrummingPractice.cs
@@ -21,7 +21,7 @@ namespace HeavenStudio.Games.Loaders
parameters = new List()
{
new Param("bop", true, "Bop", "Should the drummers bop?"),
- new Param("autoBop", true, "Bop (Auto)", "Should the drummers auto bop?")
+ new Param("autoBop", false, "Bop (Auto)", "Should the drummers auto bop?")
}
},
new GameAction("drum", "Hit Drum")
@@ -121,9 +121,6 @@ namespace HeavenStudio.Games
bool isMoving;
string moveAnim;
EasingFunction.Ease lastEase;
- bool goBop = true;
-
- public GameEvent bop = new GameEvent();
public int count = 0;
public static DrummingPractice instance;
@@ -132,6 +129,7 @@ namespace HeavenStudio.Games
{
instance = this;
SetMiis();
+ SetupBopRegion("drummingPractice", "bop", "autoBop");
}
public override void OnGameSwitch(double beat)
@@ -146,7 +144,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (goBop)
+ if (BeatIsInBopRegion(beat))
{
Bop();
}
@@ -191,7 +189,6 @@ namespace HeavenStudio.Games
public void SetBop(double beat, float length, bool shouldBop, bool autoBop)
{
- goBop = autoBop;
if (shouldBop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/FanClub/FanClub.cs b/Assets/Scripts/Games/FanClub/FanClub.cs
index bdadd741..2212be69 100644
--- a/Assets/Scripts/Games/FanClub/FanClub.cs
+++ b/Assets/Scripts/Games/FanClub/FanClub.cs
@@ -218,8 +218,6 @@ namespace HeavenStudio.Games
private static bool wantKamoneAlt = false;
private static double wantBigReady = double.MinValue;
private bool hasJumped = false;
- private bool goBopIdol = true;
- private bool goBopSpec = true;
private bool noJudgement = false;
private bool noJudgementInput = false;
@@ -235,6 +233,8 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("fanClub", "bop", "type2", false);
+ AddBopRegionEventsInt("fanClub", "finish", 3);
Spectators = new List();
idolAnimator = Arisa.GetComponent();
backupRAnimator = Blue.GetComponent();
@@ -357,6 +357,9 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
var cond = Conductor.instance;
+ int whoBops = BeatIsInBopRegionInt(beat);
+ bool goBopIdol = whoBops == (int)IdolBopType.Both || whoBops == (int)IdolBopType.Idol;
+ bool goBopSpec = whoBops == (int)IdolBopType.Both || whoBops == (int)IdolBopType.Spectators;
if (goBopIdol)
{
if (!(cond.songPositionInBeatsAsDouble >= noBop.startBeat && cond.songPositionInBeatsAsDouble < noBop.startBeat + noBop.length))
@@ -398,8 +401,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, int target = (int) IdolBopType.Both, int targetAuto = (int)IdolBopType.Both)
{
- goBopIdol = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Idol;
- goBopSpec = targetAuto == (int)IdolBopType.Both || targetAuto == (int)IdolBopType.Spectators;
for (int i = 0; i < length; i++)
{
BeatAction.New(instance, new List()
@@ -934,7 +935,6 @@ namespace HeavenStudio.Games
if (noJudgement) return;
noJudgement = true;
noJudgementInput = false;
- goBopSpec = false;
// recreation of sub61
BeatAction.New(this, new List()
diff --git a/Assets/Scripts/Games/KarateMan/KarateMan.cs b/Assets/Scripts/Games/KarateMan/KarateMan.cs
index 9fca97f8..4e2e5f55 100644
--- a/Assets/Scripts/Games/KarateMan/KarateMan.cs
+++ b/Assets/Scripts/Games/KarateMan/KarateMan.cs
@@ -692,6 +692,7 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("karateman", "bop", "toggle");
KarateManPot.ResetLastCombo();
@@ -1168,13 +1169,13 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
+ bool autoBop = BeatIsInBopRegion(beat);
+ Joe.bop.length = autoBop ? float.MaxValue : 0;
Joe.RequestBop();
}
public void ToggleBop(double beat, float length, bool toggle, bool autoBop)
{
- Joe.bop.length = autoBop ? float.MaxValue : 0;
-
if (toggle)
{
var actions = new List();
diff --git a/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs b/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs
index f03d79db..510e0209 100644
--- a/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs
+++ b/Assets/Scripts/Games/MeatGrinder/MeatGrinder.cs
@@ -94,10 +94,8 @@ namespace HeavenStudio.Games
[Header("Variables")]
bool intervalStarted;
double intervalStartBeat;
- bool bossBop = true;
public double beatInterval = 4f;
public bool bossAnnoyed = false;
- private double lastReportedBeat = 0f;
const string sfxName = "meatGrinder/";
public static MeatGrinder instance;
@@ -124,6 +122,7 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("meatGrinder", "bop", "bossBop");
}
void OnDestroy()
@@ -161,7 +160,7 @@ namespace HeavenStudio.Games
{
if (!BossAnim.IsPlayingAnimationName("BossCall")
&& !BossAnim.IsPlayingAnimationName("BossSignal")
- && bossBop)
+ && BeatIsInBopRegion(beat))
{
BossAnim.DoScaledAnimationAsync(bossAnnoyed ? "BossMiss" : "Bop", 0.5f);
}
@@ -169,7 +168,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, double length, bool doesBop, bool autoBop)
{
- bossBop = autoBop;
if (doesBop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/Minigame.cs b/Assets/Scripts/Games/Minigame.cs
index 632bb881..7954ebbb 100644
--- a/Assets/Scripts/Games/Minigame.cs
+++ b/Assets/Scripts/Games/Minigame.cs
@@ -6,6 +6,7 @@ using HeavenStudio.Util;
using HeavenStudio.Common;
using HeavenStudio.InputSystem;
using System;
+using System.Linq;
namespace HeavenStudio.Games
{
@@ -448,6 +449,82 @@ namespace HeavenStudio.Games
}
+ #region Bop
+
+ protected enum DefaultBopEnum
+ {
+ Off = 0,
+ On = 1,
+ }
+
+ private Dictionary bopRegion = new();
+
+ public bool BeatIsInBopRegion(double beat)
+ {
+ if (bopRegion.Count == 0) return true;
+
+ int bop = 0;
+ foreach (var item in bopRegion)
+ {
+ if (beat < item.Key) break;
+ if (beat >= item.Key) bop = item.Value;
+ }
+ return (DefaultBopEnum)bop == DefaultBopEnum.On;
+ }
+
+ public int BeatIsInBopRegionInt(double beat)
+ {
+ if (bopRegion.Count == 0) return 0;
+
+ int bop = 0;
+ foreach (var item in bopRegion)
+ {
+ if (beat < item.Key) break;
+ if (beat >= item.Key) bop = item.Value;
+ }
+ return bop;
+ }
+
+ protected void SetupBopRegion(string gameName, string eventName, string toggleName, bool isBool = true)
+ {
+ var allEvents = EventCaller.GetAllInGameManagerList(gameName, new string[] { eventName });
+ allEvents.Sort((x, y) => x.beat.CompareTo(y.beat));
+
+ foreach (var e in allEvents)
+ {
+ if (isBool)
+ {
+ bopRegion.Add(e.beat, e[toggleName] ? 1 : 0);
+ }
+ else
+ {
+ bopRegion.Add(e.beat, e[toggleName]);
+ }
+ }
+ }
+
+ protected void AddBopRegionEvents(string gameName, string eventName, bool allowBop)
+ {
+ var allEvents = EventCaller.GetAllInGameManagerList(gameName, new string[] { eventName });
+ foreach (var e in allEvents)
+ {
+ bopRegion.Add(e.beat, allowBop ? 1 : 0);
+ }
+ bopRegion = bopRegion.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value);
+ }
+
+ protected void AddBopRegionEventsInt(string gameName, string eventName, int allowBop)
+ {
+ var allEvents = EventCaller.GetAllInGameManagerList(gameName, new string[] { eventName });
+ foreach (var e in allEvents)
+ {
+ bopRegion.Add(e.beat, allowBop);
+ }
+ bopRegion = bopRegion.OrderBy(pair => pair.Value).ToDictionary(pair => pair.Key, pair => pair.Value);
+ }
+
+ #endregion
+
private void OnDestroy()
{
foreach (var evt in scheduledInputs)
diff --git a/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs b/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs
index 9de0976d..35e30dd6 100644
--- a/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs
+++ b/Assets/Scripts/Games/MunchyMonk/MunchyMonk.cs
@@ -17,14 +17,14 @@ namespace HeavenStudio.Games.Loaders
{
function = delegate {
var e = eventCaller.currentEntity;
- MunchyMonk.instance.Bop(e.beat, e["bop"], e["autoBop"]);
+ MunchyMonk.instance.Bop(e.beat, e.length, e["bop"]);
},
parameters = new List()
{
new Param("bop", true, "Monk Bops?", "Does the monk bop?"),
new Param("autoBop", false, "Monk Bops? (Auto)", "Does the monk auto bop?"),
},
- defaultLength = 0.5f,
+ resizable = true
},
new GameAction("MonkMove", "Monk Move")
{
@@ -209,7 +209,6 @@ namespace HeavenStudio.Games
public double lastReportedBeat = 0f;
public bool needBlush;
public bool isStaring;
- bool monkBop = true;
// these variables are static so that they can be set outside of the game/stay the same between game switches
static public int howManyGulps;
@@ -241,6 +240,7 @@ namespace HeavenStudio.Games
{
instance = this;
Baby.SetActive(!disableBaby);
+ SetupBopRegion("munchyMonk", "Bop", "autoBop");
}
private void Start()
@@ -352,7 +352,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
if ((MonkAnim.IsAnimationNotPlaying() || MonkAnim.IsPlayingAnimationName("Bop") || MonkAnim.IsPlayingAnimationName("Idle"))
- && monkBop
+ && BeatIsInBopRegion(beat)
&& !isStaring)
{
MonkAnim.DoScaledAnimationAsync("Bop", 0.5f);
@@ -370,15 +370,23 @@ namespace HeavenStudio.Games
}
}
- public void Bop(double beat, bool bop, bool autoBop)
+ public void Bop(double beat, double length, bool bop)
{
- monkBop = autoBop;
- if (bop) {
- needBlush = false;
- MonkAnim.DoScaledAnimationAsync("Bop", 0.5f);
- if (growLevel == 4) BrowAnim.DoScaledAnimationAsync("Bop", 0.5f);
- if (growLevel > 0) StacheAnim.DoScaledAnimationAsync($"Bop{growLevel}", 0.5f);
+ if (!bop) return;
+ List actions = new();
+
+ for (int i = 0; i < length; i++)
+ {
+ actions.Add(new(beat + i, delegate
+ {
+ needBlush = false;
+ MonkAnim.DoScaledAnimationAsync("Bop", 0.5f);
+ if (growLevel == 4) BrowAnim.DoScaledAnimationAsync("Bop", 0.5f);
+ if (growLevel > 0) StacheAnim.DoScaledAnimationAsync($"Bop{growLevel}", 0.5f);
+ }));
}
+
+ if (actions.Count > 0) BeatAction.New(this, actions);
}
public void InputFunctions(int whichVar, float state = 0)
diff --git a/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs b/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs
index 18fdf4ee..69595873 100644
--- a/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs
+++ b/Assets/Scripts/Games/OctopusMachine/OctopusMachine.cs
@@ -229,6 +229,7 @@ namespace HeavenStudio.Games
void Awake()
{
instance = this;
+ SetupBopRegion("octopusMachine", "bop", "keepBop");
}
private void Start()
@@ -263,8 +264,11 @@ namespace HeavenStudio.Games
if (autoAction) bopIterate++;
+ bool keepBop = BeatIsInBopRegion(beat);
+
foreach (var octo in octopodes)
{
+ octo.cantBop = !keepBop;
octo.RequestBop();
}
}
@@ -339,7 +343,6 @@ namespace HeavenStudio.Games
foreach (var octo in octopodes) {
if (singleBop) octo.PlayAnimation(whichBop);
if (keepBop) bopStatus = whichBop;
- octo.cantBop = !keepBop;
}
}
diff --git a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs
index 0b808c35..8bb9d1cf 100644
--- a/Assets/Scripts/Games/RhythmRally/RhythmRally.cs
+++ b/Assets/Scripts/Games/RhythmRally/RhythmRally.cs
@@ -152,8 +152,6 @@ namespace HeavenStudio.Games
public Paddlers paddlers;
- private bool goBop = true;
-
public static RhythmRally instance;
private void Awake()
@@ -166,6 +164,7 @@ namespace HeavenStudio.Games
playerAnim.Play("Idle", 0, 0);
opponentAnim.Play("Idle", 0, 0);
+ SetupBopRegion("rhythmRally", "bop", "bopAuto");
}
const float tableHitTime = 0.58f;
@@ -366,7 +365,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (goBop && !inPose)
+ if (BeatIsInBopRegion(beat) && !inPose)
{
BopSingle();
}
@@ -374,7 +373,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool bop, bool bopAuto)
{
- goBop = bopAuto;
if (bop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs b/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs
index ec54051b..46bd45c3 100644
--- a/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs
+++ b/Assets/Scripts/Games/RhythmSomen/RhythmSomen.cs
@@ -70,23 +70,21 @@ namespace HeavenStudio.Games
public Animator CloseCrane;
public Animator FarCrane;
public GameObject Player;
- private bool shouldBop = true;
private bool missed;
private bool hasSlurped;
- public GameEvent bop = new GameEvent();
-
public static RhythmSomen instance;
// Start is called before the first frame update
void Awake()
{
instance = this;
+ SetupBopRegion("rhythmSomen", "bop", "toggle");
}
public override void OnBeatPulse(double beat)
{
- if (shouldBop) SomenPlayer.DoScaledAnimationAsync("HeadBob", 0.5f);
+ if (BeatIsInBopRegion(beat)) SomenPlayer.DoScaledAnimationAsync("HeadBob", 0.5f);
}
void Update()
@@ -125,7 +123,6 @@ namespace HeavenStudio.Games
public void ToggleBop(double beat, float length, bool bopOrNah, bool autoBop)
{
- shouldBop = autoBop;
if (bopOrNah)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/Ringside/Ringside.cs b/Assets/Scripts/Games/Ringside/Ringside.cs
index 5da8b759..ce77e8ea 100644
--- a/Assets/Scripts/Games/Ringside/Ringside.cs
+++ b/Assets/Scripts/Games/Ringside/Ringside.cs
@@ -143,7 +143,6 @@ namespace HeavenStudio.Games
private float currentZoomCamBeat;
private Vector3 lastCamPos = new Vector3(0, 0, -10);
private Vector3 currentCamPos = new Vector3(0, 0, -10);
- private bool shouldBop = true;
private bool missedBigGuy;
private bool reporterShouldHeart;
private bool hitPose;
@@ -201,6 +200,7 @@ namespace HeavenStudio.Games
void Awake()
{
instance = this;
+ SetupBopRegion("ringside", "toggleBop", "bop");
var camEvents = EventCaller.GetAllInGameManagerList("ringside", new string[] { "poseForTheFans" });
List tempEvents = new List();
for (int i = 0; i < camEvents.Count; i++)
@@ -220,7 +220,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (shouldBop && canBop)
+ if (BeatIsInBopRegion(beat) && canBop)
{
if (UnityEngine.Random.Range(1, 18) == 1)
{
@@ -331,7 +331,6 @@ namespace HeavenStudio.Games
public void ToggleBop(double beat, float length, bool startBopping, bool autoBop)
{
- shouldBop = autoBop;
if (startBopping)
{
for (int i = 0; i < length; i++)
@@ -510,7 +509,7 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + 1, delegate { PoseCheck(beat); }),
new BeatAction.Action(beat + 4f, delegate
{
- if (shouldBop)
+ if (BeatIsInBopRegion(beat + 4f))
{
if (UnityEngine.Random.Range(1, 18) == 1)
{
diff --git a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs
index 13d41c7e..1d422b5a 100644
--- a/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs
+++ b/Assets/Scripts/Games/SamuraiSliceNtr/SamuraiSliceNtr.cs
@@ -89,6 +89,7 @@ namespace HeavenStudio.Games.Loaders
namespace HeavenStudio.Games
{
+ using JetBrains.Annotations;
using Scripts_NtrSamurai;
public class SamuraiSliceNtr : Minigame
@@ -102,15 +103,12 @@ namespace HeavenStudio.Games
public enum WhoBops
{
- Samurai = 0,
+ Samurai = 2,
Children = 1,
- Both = 2,
+ Both = 0,
None = 3
}
- private bool goBopSamurai = true;
- private bool goBopChild = true;
-
[Header("References")]
public NtrSamurai player;
public GameObject launcher;
@@ -167,10 +165,15 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("samuraiSliceNtr", "bop", "whoBopsAuto", false);
}
public override void OnBeatPulse(double beat)
{
+ int whoBopsAuto = BeatIsInBopRegionInt(beat);
+ bool goBopSamurai = whoBopsAuto == (int)WhoBops.Samurai || whoBopsAuto == (int)WhoBops.Both;
+ bool goBopChild = whoBopsAuto == (int)WhoBops.Children || whoBopsAuto == (int)WhoBops.Both;
+
if (goBopSamurai) player.Bop();
if (goBopChild) childParent.GetComponent().Bop();
}
@@ -187,8 +190,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, int whoBops, int whoBopsAuto)
{
- goBopSamurai = whoBopsAuto == (int)WhoBops.Samurai || whoBopsAuto == (int)WhoBops.Both;
- goBopChild = whoBopsAuto == (int)WhoBops.Children || whoBopsAuto == (int)WhoBops.Both;
for (int i = 0; i < length; i++)
{
BeatAction.New(instance, new List()
diff --git a/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs b/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs
index 77399516..eb125faa 100644
--- a/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs
+++ b/Assets/Scripts/Games/SeeSaw/SeeSawGuy.cs
@@ -136,9 +136,34 @@ namespace HeavenStudio.Games.Scripts_SeeSaw
transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat);
break;
case JumpState.HighOutOut:
+ if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see)
+ {
+ if (!hasChangedAnimMidAir) anim.Play("Jump_OutOut_Fall", 0, 0);
+ hasChangedAnimMidAir = true;
+ }
+ transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat);
+ break;
case JumpState.HighOutIn:
+ if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see)
+ {
+ if (!hasChangedAnimMidAir) anim.Play("Jump_OutIn_Tuck", 0, 0);
+ hasChangedAnimMidAir = true;
+ }
+ transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat);
+ break;
case JumpState.HighInOut:
+ if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see)
+ {
+ if (!hasChangedAnimMidAir) anim.Play("Jump_InOut_Tuck", 0, 0);
+ hasChangedAnimMidAir = true;
+ }
+ break;
case JumpState.HighInIn:
+ if (currentBeat >= startBeat + 1 && !hasChangedAnimMidAir && see)
+ {
+ if (!hasChangedAnimMidAir) anim.Play("Jump_InIn_Fall", 0, 0);
+ hasChangedAnimMidAir = true;
+ }
transform.position = GetPathPositionFromBeat(currentPath, Math.Max(startBeat, currentBeat), startBeat);
break;
}
diff --git a/Assets/Scripts/Games/SpaceDance/SpaceDance.cs b/Assets/Scripts/Games/SpaceDance/SpaceDance.cs
index 45668df1..e061c5e5 100644
--- a/Assets/Scripts/Games/SpaceDance/SpaceDance.cs
+++ b/Assets/Scripts/Games/SpaceDance/SpaceDance.cs
@@ -144,7 +144,6 @@ namespace HeavenStudio.Games
public Animator Gramps;
public Animator Hit;
public GameObject Player;
- [NonSerialized] public bool shouldBop = true;
bool canBop = true;
bool grampsCanBop = true;
public bool spaceGrampsShouldBop = false;
@@ -226,11 +225,12 @@ namespace HeavenStudio.Games
instance = this;
colorStart = defaultBGColor;
colorEnd = defaultBGColor;
+ SetupBopRegion("spaceDance", "bop", "auto");
}
public override void OnBeatPulse(double beat)
{
- if (shouldBop)
+ if (BeatIsInBopRegion(beat))
{
Bop();
}
@@ -656,7 +656,6 @@ namespace HeavenStudio.Games
public void EpicBop(double beat, float length, bool autoDancers, bool dancers, bool autoGramps, bool gramps)
{
- shouldBop = autoDancers;
spaceGrampsShouldBop = autoGramps;
if (dancers || gramps)
{
diff --git a/Assets/Scripts/Games/TapTrial/TapTrial.cs b/Assets/Scripts/Games/TapTrial/TapTrial.cs
index 0d43147b..89df2aeb 100644
--- a/Assets/Scripts/Games/TapTrial/TapTrial.cs
+++ b/Assets/Scripts/Games/TapTrial/TapTrial.cs
@@ -110,9 +110,7 @@ namespace HeavenStudio.Games
[SerializeField] private float monkeyJumpHeight = 3f;
[SerializeField] private float maxFlashOpacity = 0.8f;
- private GameEvent bop = new();
private bool canBop = true;
- private bool shouldBop = true;
private double jumpStartBeat = double.MinValue;
@@ -121,11 +119,12 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("tapTrial", "bop", "toggle2");
}
public override void OnBeatPulse(double beat)
{
- if (shouldBop) SingleBop();
+ if (BeatIsInBopRegion(beat)) SingleBop();
}
private void Update()
@@ -253,7 +252,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool bop, bool autoBop)
{
- shouldBop = autoBop;
if (bop)
{
List actions = new();
@@ -443,14 +441,14 @@ namespace HeavenStudio.Games
private void MissJump(PlayerActionEvent caller)
{
player.JumpTapMiss(false);
- if (giraffe.IsAnimationNotPlaying()) giraffe.DoScaledAnimationAsync("Miss", 0.5f);
+ if (giraffe.IsAnimationNotPlaying() && currentAnim != GiraffeAnimation.Exit) giraffe.DoScaledAnimationAsync("Miss", 0.5f);
ResetScroll();
}
private void MissJumpFinal(PlayerActionEvent caller)
{
player.JumpTapMiss(true);
- if (giraffe.IsAnimationNotPlaying()) giraffe.DoScaledAnimationAsync("Miss", 0.5f);
+ if (giraffe.IsAnimationNotPlaying() && currentAnim != GiraffeAnimation.Exit) giraffe.DoScaledAnimationAsync("Miss", 0.5f);
ResetScroll();
}
diff --git a/Assets/Scripts/Games/TheDazzles/TheDazzles.cs b/Assets/Scripts/Games/TheDazzles/TheDazzles.cs
index 2a35b7e2..0592d454 100644
--- a/Assets/Scripts/Games/TheDazzles/TheDazzles.cs
+++ b/Assets/Scripts/Games/TheDazzles/TheDazzles.cs
@@ -228,8 +228,6 @@ namespace HeavenStudio.Games
bool doingPoses = false;
bool shouldHold = false;
double crouchEndBeat;
- public bool shouldBop = true;
- public GameEvent bop = new GameEvent();
static List queuedPoses = new List();
static List queuedCrouches = new List();
[Header("Components")]
@@ -255,11 +253,12 @@ namespace HeavenStudio.Games
void Awake()
{
instance = this;
+ SetupBopRegion("theDazzles", "bop", "toggle");
}
public override void OnBeatPulse(double beat)
{
- if (shouldBop)
+ if (BeatIsInBopRegion(beat))
{
foreach (var girl in npcGirls)
{
@@ -353,7 +352,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool goBop, bool autoBop)
{
- shouldBop = autoBop;
if (goBop)
{
for (int i = 0; i < length; i++)
diff --git a/Assets/Scripts/Games/TossBoys/TossBoys.cs b/Assets/Scripts/Games/TossBoys/TossBoys.cs
index 6fb61256..b583bd97 100644
--- a/Assets/Scripts/Games/TossBoys/TossBoys.cs
+++ b/Assets/Scripts/Games/TossBoys/TossBoys.cs
@@ -147,8 +147,6 @@ namespace HeavenStudio.Games
Dictionary passBallDict = new();
string currentPassType;
public static TossBoys instance;
- bool shouldBop = true;
- public GameEvent bop = new GameEvent();
float currentEventLength;
const int IAAka = IAMAXCAT;
@@ -236,6 +234,7 @@ namespace HeavenStudio.Games
instance = this;
colorStart = defaultBGColor;
colorEnd = defaultBGColor;
+ SetupBopRegion("tossBoys", "bop", "auto");
}
new void OnDrawGizmos()
@@ -264,7 +263,7 @@ namespace HeavenStudio.Games
public override void OnBeatPulse(double beat)
{
- if (shouldBop)
+ if (BeatIsInBopRegion(beat))
{
SingleBop();
}
@@ -352,7 +351,6 @@ namespace HeavenStudio.Games
public void Bop(double beat, float length, bool auto, bool goBop)
{
- shouldBop = auto;
if (goBop)
{
List bops = new List();
diff --git a/Assets/Scripts/Games/TrickClass/TrickClass.cs b/Assets/Scripts/Games/TrickClass/TrickClass.cs
index 31dda092..c7394294 100644
--- a/Assets/Scripts/Games/TrickClass/TrickClass.cs
+++ b/Assets/Scripts/Games/TrickClass/TrickClass.cs
@@ -114,12 +114,13 @@ namespace HeavenStudio.Games
private void Awake()
{
instance = this;
+ SetupBopRegion("trickClass", "bop", "autoBop");
}
public override void OnBeatPulse(double beat)
{
var cond = Conductor.instance;
- if (!goBop) return;
+ if (!BeatIsInBopRegion(beat)) return;
if ((!playerReady) && cond.songPositionInBeatsAsDouble > playerBopStart)
playerAnim.DoScaledAnimationAsync("Bop");
From c18113de991a1fa7c92105426ff331c23a1a3de3 Mon Sep 17 00:00:00 2001
From: AstrlJelly
Date: Tue, 5 Dec 2023 17:38:55 -0500
Subject: [PATCH 2/3] Crop Stomp Fix + Fork Lifter Animation Tweak (#588)
* fork lifter weird reset thingy fixed
* crop stomp code review
im gonna be fixing that weird bug where inputs aren't scheduled if crop stomp is the first game (or if you start on it) but first
some of the code in this is nearly two years old. it needed a lot of check-ups.
* oh okay that bug was really easy to fix
* convert animation playing to beat scaled playing
* crop stomp fix
---
.../ForkLifter/Animations/Hand_Flick.anim | 111 +++-------
Assets/Scripts/Games/CropStomp/CropStomp.cs | 192 +++++++-----------
Assets/Scripts/Games/CropStomp/Farmer.cs | 29 +--
Assets/Scripts/Games/CropStomp/Veggie.cs | 87 ++++----
Assets/Scripts/Games/ForkLifter/ForkLifter.cs | 11 +-
5 files changed, 152 insertions(+), 278 deletions(-)
diff --git a/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim b/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim
index e3404d1e..4cd470df 100644
--- a/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim
+++ b/Assets/Resources/Sprites/Games/ForkLifter/Animations/Hand_Flick.anim
@@ -98,6 +98,15 @@ AnimationClip:
- serializedVersion: 3
time: 0.35
value: {x: 0.017, y: 0.261, z: 74.52776}
+ inSlope: {x: 2.7443511, y: -2.188788, z: 0}
+ outSlope: {x: 2.7443511, y: -2.188788, z: 0}
+ tangentMode: 0
+ weightedMode: 0
+ inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
+ - serializedVersion: 3
+ time: 0.4
+ value: {x: 0.1744351, y: 0.1891212, z: 74.52776}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
@@ -192,59 +201,6 @@ AnimationClip:
classID: 1
script: {fileID: 0}
m_PPtrCurves:
- - curve:
- - time: 0
- value: {fileID: 0}
- - time: 0.016666668
- value: {fileID: 0}
- - time: 0.033333335
- value: {fileID: 0}
- - time: 0.05
- value: {fileID: 0}
- - time: 0.06666667
- value: {fileID: 0}
- - time: 0.083333336
- value: {fileID: 0}
- - time: 0.1
- value: {fileID: 0}
- - time: 0.11666667
- value: {fileID: 0}
- - time: 0.13333334
- value: {fileID: 0}
- - time: 0.15
- value: {fileID: 0}
- - time: 0.16666667
- value: {fileID: 0}
- - time: 0.18333334
- value: {fileID: 0}
- - time: 0.2
- value: {fileID: 0}
- - time: 0.21666667
- value: {fileID: 0}
- - time: 0.23333333
- value: {fileID: 0}
- - time: 0.25
- value: {fileID: 0}
- - time: 0.26666668
- value: {fileID: 0}
- - time: 0.28333333
- value: {fileID: 0}
- - time: 0.3
- value: {fileID: 0}
- - time: 0.31666666
- value: {fileID: 0}
- - time: 0.33333334
- value: {fileID: 0}
- - time: 0.35
- value: {fileID: 0}
- - time: 0.36666667
- value: {fileID: 0}
- - time: 0.38333333
- value: {fileID: 0}
- attribute: m_Sprite
- path: Fork_Lifter_Gameplay
- classID: 212
- script: {fileID: 0}
- curve:
- time: 0
value: {fileID: -4922902375269903740, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3}
@@ -307,13 +263,6 @@ AnimationClip:
typeID: 1
customType: 0
isPPtrCurve: 0
- - serializedVersion: 2
- path: 345648135
- attribute: 0
- script: {fileID: 0}
- typeID: 212
- customType: 23
- isPPtrCurve: 1
- serializedVersion: 2
path: 3267382320
attribute: 0
@@ -336,30 +285,6 @@ AnimationClip:
customType: 0
isPPtrCurve: 0
pptrCurveMapping:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- {fileID: -4922902375269903740, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3}
- {fileID: -3456084564025576355, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3}
- {fileID: -3456084564025576355, guid: 52117e1d5cd298c42adfea952676c7d6, type: 3}
@@ -688,6 +613,15 @@ AnimationClip:
- serializedVersion: 3
time: 0.35
value: 0.017
+ inSlope: 2.7443511
+ outSlope: 2.7443511
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.4
+ value: 0.1744351
inSlope: 0
outSlope: 0
tangentMode: 136
@@ -716,6 +650,15 @@ AnimationClip:
- serializedVersion: 3
time: 0.35
value: 0.261
+ inSlope: -2.188788
+ outSlope: -2.188788
+ tangentMode: 136
+ weightedMode: 0
+ inWeight: 0.33333334
+ outWeight: 0.33333334
+ - serializedVersion: 3
+ time: 0.4
+ value: 0.1891212
inSlope: 0
outSlope: 0
tangentMode: 136
diff --git a/Assets/Scripts/Games/CropStomp/CropStomp.cs b/Assets/Scripts/Games/CropStomp/CropStomp.cs
index 5295b10d..951c698f 100644
--- a/Assets/Scripts/Games/CropStomp/CropStomp.cs
+++ b/Assets/Scripts/Games/CropStomp/CropStomp.cs
@@ -16,13 +16,13 @@ namespace HeavenStudio.Games.Loaders
{
new GameAction("start marching", "Start Marching")
{
- function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); },
+ function = delegate { CropStomp.instance.StartMarching(eventCaller.currentEntity.beat); },
defaultLength = 2f,
inactiveFunction = delegate { CropStomp.MarchInactive(eventCaller.currentEntity.beat); }
},
new GameAction("veggies", "Veggies")
{
- defaultLength = 4f,
+ defaultLength = 4f,
resizable = true
},
new GameAction("mole", "Mole")
@@ -49,7 +49,8 @@ namespace HeavenStudio.Games.Loaders
new GameAction("plantCollect", "Veggie Collection Values")
{
function = delegate { var e = eventCaller.currentEntity;
- CropStomp.instance.SetCollectThresholds(e["threshold"], e["limit"], e["force"], e["forceAmount"]); },
+ CropStomp.instance.SetCollectThresholds(e["threshold"], e["limit"], e["force"], e["forceAmount"]);
+ },
defaultLength = 0.5f,
parameters = new List()
{
@@ -125,43 +126,34 @@ namespace HeavenStudio.Games
private void Awake()
{
- instance = this;// Finding grass sprite width for grass scrolling.
+ instance = this; // Finding grass sprite width for grass scrolling.
farmer.Init();
- var grassSprite = grass.sprite;
- var borderLeft = grassSprite.rect.xMin + grassSprite.border.x;
- var borderRight = grassSprite.rect.xMax - grassSprite.border.z;
- var borderWidthPixels = borderRight - borderLeft;
- grassWidth = borderWidthPixels / grassSprite.pixelsPerUnit;
+ Sprite sprite = grass.sprite;
+ float borderLeft = sprite.rect.xMin + sprite.border.x;
+ float borderRight = sprite.rect.xMax - sprite.border.z;
+ float borderWidthPixels = borderRight - borderLeft;
+ grassWidth = borderWidthPixels / sprite.pixelsPerUnit;
legsAnim.Play("LiftFront", 0, 1); // Start with leg up.
+ }
- // Initialize vegetables.
- var cond = Conductor.instance;
- var entities = GameManager.instance.Beatmap.Entities;
-
- double startBeat = cond.songPositionInBeatsAsDouble;
+ public override void OnGameSwitch(double beat)
+ {
+ double startBeat;
double endBeat = double.MaxValue;
-
+ var entities = GameManager.instance.Beatmap.Entities;
if (inactiveStart == -1f)
{
// Find the beat of the closest "start marching" event.
- var marchStarts = entities.FindAll(m => m.datamodel == "cropStomp/start marching");
- for (int i = 0; i < marchStarts.Count; i++)
- {
- var sampleBeat = marchStarts[i].beat;
- if (cond.songPositionInBeatsAsDouble <= sampleBeat + 0.25f) // 0.25-beat buffer in case the start marching event is directly next to the game switch event.
- {
- startBeat = sampleBeat;
- break;
- }
- }
+ var lastMarch = entities.Find(c => c.datamodel == "cropStomp/start marching" && beat <= c.beat);
+ startBeat = lastMarch?.beat ?? beat;
}
else
{
// Find the beat of the next step, assuming marching started at inactiveStart.
int stepsPassed = 0;
- while (inactiveStart + (stepsPassed * 2f) < cond.songPositionInBeatsAsDouble)
+ while (inactiveStart + (stepsPassed * 2f) < beat)
{
stepsPassed++;
@@ -175,54 +167,31 @@ namespace HeavenStudio.Games
startBeat = inactiveStart + (stepsPassed * 2f);
// Cue the marching proper to begin when applicable.
- BeatAction.New(this, new List()
- {
- new BeatAction.Action(startBeat - 0.25f, delegate { StartMarching(startBeat); })
- });
+ BeatAction.New(this, new() { new(startBeat - 0.25f, delegate { StartMarching(startBeat); }) });
inactiveStart = -1f;
}
// find out when the next game switch (or remix end) happens
- var allEnds = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" });
- if (allEnds.Count == 0)
- {
- endBeat = double.MaxValue;
- }
- else
- {
- allEnds.Sort((x, y) => x.beat.CompareTo(y.beat));
-
- //get the beat of the closest end event
- foreach (var end in allEnds)
- {
- if (end.datamodel != "gameManager/end" && end.datamodel.Split(2) == "cropStomp") continue;
- if (end.beat > startBeat)
- {
- endBeat = end.beat;
- break;
- }
- }
- }
+ RiqEntity firstEnd = entities.Find(c => c.datamodel is "gameManager/switchGame/cropStomp" or "gameManager/end" && c.beat > startBeat);
+ endBeat = firstEnd?.beat ?? double.MaxValue;
// Veggie and mole events.
- var vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies");
- var moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole");
+ List vegEvents = entities.FindAll(v => v.datamodel == "cropStomp/veggies");
+ List moleEvents = entities.FindAll(m => m.datamodel == "cropStomp/mole");
// Spawn veggies.
- for (int i = 0; i < vegEvents.Count; i++)
- {
+ for (int i = 0; i < vegEvents.Count; i++) {
var vegBeat = vegEvents[i].beat;
var vegLength = vegEvents[i].length;
// Only consider veggie events that aren't past the start point.
- if (startBeat <= vegBeat + vegLength)
- {
+ if (startBeat <= vegBeat + vegLength) {
int veggiesInEvent = Mathf.CeilToInt(vegLength + 1) / 2;
for (int b = 0; b < veggiesInEvent; b++)
{
- var targetVeggieBeat = vegBeat + 2f * b;
+ var targetVeggieBeat = vegBeat + (2f * b);
if (startBeat <= targetVeggieBeat && targetVeggieBeat < endBeat)
{
SpawnVeggie(targetVeggieBeat, startBeat, false);
@@ -232,52 +201,40 @@ namespace HeavenStudio.Games
}
// Spawn moles.
- for (int i = 0; i < moleEvents.Count; i++)
- {
+ for (int i = 0; i < moleEvents.Count; i++) {
var moleBeat = moleEvents[i].beat;
- if (startBeat <= moleBeat && moleBeat < endBeat)
- {
+ if (startBeat <= moleBeat && moleBeat < endBeat) {
SpawnVeggie(moleBeat, startBeat, true);
}
}
- }
-
- List cuedMoleSounds = new List();
-
- public override void OnGameSwitch(double beat)
- {
SetInitTresholds(beat);
SetMarchEndBeat(beat);
}
public override void OnPlay(double beat)
{
- SetInitTresholds(beat);
- SetMarchEndBeat(beat);
+ OnGameSwitch(beat);
}
private void SetMarchEndBeat(double beat)
{
- double nextEndBeat = double.MaxValue;
var nextEnd = EventCaller.GetAllInGameManagerList("gameManager", new string[] { "switchGame", "end" }).Find(e => e.beat > beat);
- if (nextEnd != null) nextEndBeat = nextEnd.beat;
+ double nextEndBeat = nextEnd?.beat ?? double.MaxValue;
- var allEnds = EventCaller.GetAllInGameManagerList("cropStomp", new string[] { "end" });
- var tempEnds = allEnds.FindAll(x => x.beat >= beat && x.beat < nextEndBeat);
- if (tempEnds.Count == 0) return;
-
- marchEndBeat = tempEnds[0].beat;
- willNotHum = tempEnds[0]["mute"];
+ var firstEnd = GameManager.instance.Beatmap.Entities.Find(c => c.datamodel == "cropStomp/end" && c.beat >= beat && c.beat < nextEndBeat);
+ if (firstEnd != null) {
+ marchEndBeat = firstEnd.beat;
+ willNotHum = firstEnd["mute"];
+ }
}
public static void MoleSound(double beat)
{
- MultiSound.Play(new MultiSound.Sound[]
- {
- new MultiSound.Sound("cropStomp/moleNyeh", beat - 2, 1, 1, false, 0.134),
- new MultiSound.Sound("cropStomp/moleHeh1", beat - 1.5, 1, 1, false, 0.05),
- new MultiSound.Sound("cropStomp/moleHeh2", beat - 1, 1, 1, false, 0.061)
+ MultiSound.Play(new MultiSound.Sound[] {
+ new MultiSound.Sound("cropStomp/moleNyeh", beat - 2, offset: 0.134),
+ new MultiSound.Sound("cropStomp/moleHeh1", beat - 1.5, offset: 0.05),
+ new MultiSound.Sound("cropStomp/moleHeh2", beat - 1, offset: 0.061)
}, forcePlay: true);
}
@@ -285,11 +242,8 @@ namespace HeavenStudio.Games
{
var cond = Conductor.instance;
- if (!cond.isPlaying)
- return;
+ if (!cond.isPlaying || !isMarching) return;
- if (!isMarching)
- return;
// Debug.Log(newBeat);
bool cameraLocked = cond.songPositionInBeats >= marchEndBeat;
@@ -308,11 +262,11 @@ namespace HeavenStudio.Games
if (PlayerInput.GetIsAction(InputAction_BasicRelease) && !IsExpectingInputNow(InputAction_BasicRelease))
{
- bodyAnim.Play("Raise");
+ bodyAnim.DoScaledAnimationAsync("Raise", 0.5f);
}
if (PlayerInput.GetIsAction(InputAction_Flick) && !IsExpectingInputNow(InputAction_FlickRelease))
{
- bodyAnim.Play("Pick");
+ bodyAnim.DoScaledAnimationAsync("Pick", 0.5f);
}
if (cameraLocked) return;
@@ -326,7 +280,7 @@ namespace HeavenStudio.Games
var grassPos = grassTrans.localPosition;
var newGrassX = grassPos.x + (scrollRate * Time.deltaTime);
- newGrassX = (newGrassX % (grassWidth * 4.5f));
+ newGrassX %= grassWidth * 4.5f;
grassTrans.localPosition = new Vector3(newGrassX, grassPos.y, grassPos.z);
@@ -334,16 +288,14 @@ namespace HeavenStudio.Games
var dotsPos = dotsTrans.localPosition;
var newDotsX = dotsPos.x + (scrollRate * Time.deltaTime);
- newDotsX = (newDotsX % dotsWidth);
+ newDotsX %= dotsWidth;
dotsTrans.localPosition = new Vector3(newDotsX, dotsPos.y, dotsPos.z);
}
private void LateUpdate()
{
- if (!isMarching)
- return;
-
+ if (!isMarching) return;
isFlicking = false;
}
@@ -357,12 +309,9 @@ namespace HeavenStudio.Games
private void SetInitTresholds(double beat)
{
- var allCollects = EventCaller.GetAllInGameManagerList("cropStomp", new string[] { "plantCollect" });
- if (allCollects.Count == 0) return;
-
- var tempCollect = allCollects.FindLast(x => x.beat < beat);
- if (tempCollect == null) return;
- SetCollectThresholds(tempCollect["threshold"], tempCollect["limit"], tempCollect["force"], tempCollect["forceAmount"]);
+ var lastCollect = GameManager.instance.Beatmap.Entities.FindLast(c => c.datamodel == "cropStomp/plantCollect" && c.beat < beat);
+ if (lastCollect == null) return;
+ SetCollectThresholds(lastCollect["threshold"], lastCollect["limit"], lastCollect["force"], lastCollect["forceAmount"]);
}
public void CollectPlant(int veggieType)
@@ -379,19 +328,18 @@ namespace HeavenStudio.Games
if (!isStepping)
{
stepCount += 1;
- var stepAnim = (stepCount % 2 != 0 ? "StepFront" : "StepBack");
- legsAnim.Play(stepAnim, 0, 0);
+ var stepAnim = (stepCount % 2 != 0) ? "StepFront" : "StepBack";
+ legsAnim.DoScaledAnimationAsync(stepAnim, 0.5f);
isStepping = true;
}
-
}
// Lift.
else
{
- var liftAnim = (stepCount % 2 != 0 ? "LiftBack" : "LiftFront");
- legsAnim.Play(liftAnim, 0, 0);
+ var liftAnim = (stepCount % 2 != 0) ? "LiftBack" : "LiftFront";
+ legsAnim.DoScaledAnimationAsync(liftAnim, 0.5f);
var farmerPos = farmerTrans.localPosition;
farmerTrans.localPosition = new Vector3(farmerPos.x - stepDistance, farmerPos.y, farmerPos.z);
@@ -413,27 +361,28 @@ namespace HeavenStudio.Games
public void Stomp()
{
// Don't increment step counter if autostep stepped already.
- if (!isStepping)
- stepCount += 1;
+ if (!isStepping) stepCount += 1;
- var stompAnim = (stepCount % 2 != 0 ? "StompFront" : "StompBack");
+ var stompAnim = (stepCount % 2 != 0) ? "StompFront" : "StompBack";
- legsAnim.Play(stompAnim, 0, 0);
+ legsAnim.DoScaledAnimationAsync(stompAnim, 0.5f);
SoundByte.PlayOneShotGame("cropStomp/stomp");
- if (shakeTween != null)
- shakeTween.Kill(true);
+ if (shakeTween != null) shakeTween.Kill(true);
- DOTween.Punch(() => GameCamera.AdditionalPosition, x => GameCamera.AdditionalPosition = x, new Vector3(0, 0.75f, 0),
- Conductor.instance.pitchedSecPerBeat*0.5f, 18, 1f);
+ DOTween.Punch(() =>
+ GameCamera.AdditionalPosition,
+ x => GameCamera.AdditionalPosition = x,
+ new Vector3(0, 0.75f, 0), Conductor.instance.pitchedSecPerBeat * 0.5f, 18, 1f
+ );
isStepping = true;
}
private void SpawnVeggie(double beat, double startBeat, bool isMole)
{
- var newVeggie = GameObject.Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent();
+ var newVeggie = Instantiate(isMole ? baseMole : baseVeggie, veggieHolder).GetComponent();
newVeggie.targetBeat = beat;
@@ -445,21 +394,16 @@ namespace HeavenStudio.Games
public static void MarchInactive(double beat)
{
- if (GameManager.instance.currentGame == "cropStomp") //this function is only meant for making march sounds while the game is inactive
- {
- return;
- }
+ if (GameManager.instance.currentGame == "cropStomp") return;
inactiveStart = beat;
RiqEntity gameSwitch = GameManager.instance.Beatmap.Entities.Find(c => c.beat >= beat && c.datamodel == "gameManager/switchGame/cropStomp");
- if (gameSwitch == null)
- return;
- int length = (int)Math.Ceiling((gameSwitch.beat - beat)/2);
+ if (gameSwitch == null) return;
+ int length = (int)Math.Ceiling((gameSwitch.beat - beat) / 2);
MultiSound.Sound[] sounds = new MultiSound.Sound[length];
- for(int i = 0; i < length; i++)
- {
- sounds[i] = new MultiSound.Sound("cropStomp/hmm", beat + i*2);
+ for(int i = 0; i < length; i++) {
+ sounds[i] = new MultiSound.Sound("cropStomp/hmm", beat + (i * 2));
}
- MultiSound.Play(sounds, forcePlay:true);
+ MultiSound.Play(sounds, forcePlay: true);
}
}
}
diff --git a/Assets/Scripts/Games/CropStomp/Farmer.cs b/Assets/Scripts/Games/CropStomp/Farmer.cs
index cc2b33ca..4016cb5d 100644
--- a/Assets/Scripts/Games/CropStomp/Farmer.cs
+++ b/Assets/Scripts/Games/CropStomp/Farmer.cs
@@ -70,7 +70,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
if (PlayerInput.GetIsAction(CropStomp.InputAction_BasicPress) && !game.IsExpectingInputNow(CropStomp.InputAction_BasicPress))
{
- game.bodyAnim.Play("Crouch", 0, 0);
+ game.bodyAnim.DoScaledAnimationAsync("Crouch", 0.5f);
}
}
@@ -87,8 +87,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
startPlant.SetActive(collectedPlants >= plantThreshold);
if (spawnedPlants.Count > 0)
{
- foreach (var plant in spawnedPlants)
- {
+ foreach (var plant in spawnedPlants) {
Destroy(plant);
}
spawnedPlants.Clear();
@@ -102,8 +101,9 @@ namespace HeavenStudio.Games.Scripts_CropStomp
{
spawnedPlant = Instantiate(plantLastRef, collectedHolder);
spawnedPlant.GetComponent().sprite = veggieSprites[lastVeggieType];
+ } else {
+ spawnedPlant = Instantiate((realIndex % 2 == 0) ? plantRightRef : plantLeftRef, collectedHolder);
}
- else spawnedPlant = Instantiate((realIndex % 2 == 0) ? plantRightRef : plantLeftRef, collectedHolder);
spawnedPlant.transform.localPosition = new Vector3(0, (realIndex * plantDistance) + plantStartDistance, 0);
spawnedPlant.GetComponent().sortingOrder = -realIndex - 2;
spawnedPlant.SetActive(true);
@@ -119,9 +119,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp
private void Miss(PlayerActionEvent caller)
{
- if (GameManager.instance.currentGame != "cropStomp") return;
- if (!game.isMarching)
- return;
+ if (GameManager.instance.currentGame != "cropStomp" || !game.isMarching) return;
+
// REMARK: does not count for performance
nextStompBeat += 2f;
stomp?.Disable();
@@ -133,18 +132,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp
void Stomp(bool ng)
{
- if (GameManager.instance.currentGame != "cropStomp") return;
- if (!game.isMarching)
- return;
- if (ng)
- {
- game.bodyAnim.Play("Crouch", 0, 0);
- }
- else
- {
+ if (GameManager.instance.currentGame != "cropStomp" || !game.isMarching) return;
+ if (ng) {
+ game.bodyAnim.DoScaledAnimationAsync("Crouch", 0.5f);
+ } else {
game.Stomp();
- game.bodyAnim.Play("Stomp", 0, 0);
-
+ game.bodyAnim.DoScaledAnimationAsync("Stomp", 0.5f);
}
nextStompBeat += 2f;
stomp?.Disable();
diff --git a/Assets/Scripts/Games/CropStomp/Veggie.cs b/Assets/Scripts/Games/CropStomp/Veggie.cs
index 56d6a478..69558981 100644
--- a/Assets/Scripts/Games/CropStomp/Veggie.cs
+++ b/Assets/Scripts/Games/CropStomp/Veggie.cs
@@ -39,7 +39,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
{
game = CropStomp.instance;
- if (Conductor.instance.isPlaying)
+ // if (Conductor.instance.isPlaying)
game.ScheduleInput(targetBeat - 1, 1f, CropStomp.InputAction_BasicPress, StompJust, StompMiss, Out);
if (!isMole)
@@ -56,38 +56,23 @@ namespace HeavenStudio.Games.Scripts_CropStomp
private bool gotStomped; // Safeguard in case nested Update() call breaks.
private void Update()
{
- if (!game.isMarching)
- return;
+ if (!game.isMarching) return;
- // Veggie missed. Handle missed state.
- if (veggieState == -1)
+ switch (veggieState)
{
- MissedUpdate();
- return;
- }
+ case -1: MissedUpdate(); return;
+ // case 0:
+ case 2: PickedUpdate(); return;
+ case 1:
+ float airPosition = Conductor.instance.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat);
+ veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1));
- // Veggie picked. Handle picked state.
- if (veggieState == 2)
- {
- PickedUpdate();
- return;
- }
-
- var cond = Conductor.instance;
- // In ground.
- if (veggieState == 0)
- {
- }
- // In air.
- else if (veggieState == 1)
- {
- float airPosition = cond.GetPositionFromBeat(stompedBeat, landBeat - stompedBeat);
- veggieTrans.position = curve.GetPoint(Mathf.Clamp(airPosition, 0, 1));
-
- if (PlayerInput.GetIsAction(CropStomp.InputAction_FlickRelease) && !game.IsExpectingInputNow(CropStomp.InputAction_FlickRelease))
- {
- pickEligible = false;
- }
+ if (PlayerInput.GetIsAction(CropStomp.InputAction_FlickRelease) && !game.IsExpectingInputNow(CropStomp.InputAction_FlickRelease))
+ {
+ pickEligible = false;
+ }
+ break;
+ // default:
}
}
@@ -105,17 +90,17 @@ namespace HeavenStudio.Games.Scripts_CropStomp
StompVeggie(false);
}
- private void StompMiss(PlayerActionEvent caller)
+ private void StompMiss(PlayerActionEvent caller)
{
veggieState = -1;
caller.Disable();
}
- private void Out(PlayerActionEvent caller) {}
+ private void Out(PlayerActionEvent caller) { }
private void PickJust(PlayerActionEvent caller, float state)
{
- game.bodyAnim.Play("Pick", 0, 0);
+ game.bodyAnim.DoScaledAnimationAsync("Pick", 0.5f);
game.isFlicking = true;
if (!pickEligible) return;
if (GameManager.instance.autoplay)
@@ -131,13 +116,20 @@ namespace HeavenStudio.Games.Scripts_CropStomp
curve.transform.localScale = Vector3.one; // Return curve to normal size in the case of mole curves.
- var key1 = curve.KeyPoints[0];
- var key1Pos = key1.Position;
- key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z);
+ for (int i = 0; i < 2; i++)
+ {
+ var key = curve.KeyPoints[i];
+ var keyPos = key.Position;
+ key.Position = new Vector3(keyPos.x, veggieTrans.position.y + (i * 2), keyPos.z);
+ }
- var key2 = curve.KeyPoints[1];
- var key2Pos = key2.Position;
- key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z);
+ // var key1 = curve.KeyPoints[0];
+ // var key1Pos = key1.Position;
+ // key1.Position = new Vector3(key1Pos.x, veggieTrans.position.y, key1Pos.z);
+
+ // var key2 = curve.KeyPoints[1];
+ // var key2Pos = key2.Position;
+ // key2.Position = new Vector3(key2Pos.x, veggieTrans.position.y + 2f, key2Pos.z);
pickedBeat = Conductor.instance.songPositionInBeatsAsDouble;
@@ -154,9 +146,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp
private void PickMiss(PlayerActionEvent caller)
{
veggieState = -1;
-
- if (!isMole)
- SoundByte.PlayOneShotGame("cropStomp/veggieMiss");
+
+ if (!isMole) SoundByte.PlayOneShotGame("cropStomp/veggieMiss");
caller.Disable();
}
@@ -186,7 +177,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
var distDiff = transform.position.x - game.farmerTrans.position.x;
if (distDiff > 1.5f)
{
- moleAnim.Play("Chuckle", 0, 0);
+ moleAnim.DoScaledAnimationAsync("Chuckle", 0.5f);
moleLaughing = true;
}
}
@@ -223,6 +214,8 @@ namespace HeavenStudio.Games.Scripts_CropStomp
}
gotStomped = true;
+ Debug.Log("Stomped!");
+
var cond = Conductor.instance;
ParticleSystem spawnedHit = Instantiate(game.hitParticle, game.hitParticle.transform.parent);
@@ -235,12 +228,12 @@ namespace HeavenStudio.Games.Scripts_CropStomp
stompedBeat = cond.songPositionInBeatsAsDouble;
- landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime()-1, cond.GetBpmAtBeat(targetBeat));
+ landBeat = targetBeat + (float)cond.SecsToBeats(Minigame.NgLateTime() - 1, cond.GetBpmAtBeat(targetBeat));
if (autoTriggered)
{
game.Stomp();
- game.bodyAnim.Play("Stomp", 0, 0);
+ game.bodyAnim.DoScaledAnimationAsync("Stomp", 0.5f);
}
if (!isMole)
@@ -251,7 +244,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
}
else
{
- moleAnim.Play("Idle", 0, 0);
+ moleAnim.DoScaledAnimationAsync("Idle", 0.5f);
}
var veggieScale = veggieTrans.localScale;
@@ -267,7 +260,7 @@ namespace HeavenStudio.Games.Scripts_CropStomp
if (autoTriggered)
{
- game.bodyAnim.Play("Pick", 0, 0);
+ game.bodyAnim.DoScaledAnimationAsync("Pick", 0.5f);
game.isFlicking = true;
}
diff --git a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs
index 0c6519ac..6787de94 100644
--- a/Assets/Scripts/Games/ForkLifter/ForkLifter.cs
+++ b/Assets/Scripts/Games/ForkLifter/ForkLifter.cs
@@ -124,6 +124,12 @@ namespace HeavenStudio.Games
BackgroundColorUpdate();
}
+ public override void OnPlay(double beat)
+ {
+ base.OnPlay(beat);
+ OnGameSwitch(beat);
+ }
+
public override void OnGameSwitch(double beat)
{
base.OnGameSwitch(beat);
@@ -247,10 +253,5 @@ namespace HeavenStudio.Games
BackgroundColorGrad(lastEventGrad.beat, lastEventGrad.length, lastEventGrad["start"], lastEventGrad["end"], lastEventGrad["ease"]);
}
}
-
- public override void OnPlay(double beat)
- {
- PersistColor(beat);
- }
}
}
\ No newline at end of file
From d665dad3412775e24a10acb34448e2d8f4a6f5f6 Mon Sep 17 00:00:00 2001
From: minenice55
Date: Tue, 5 Dec 2023 17:38:57 -0500
Subject: [PATCH 3/3] make totc less jank with perspective (#590)
---
Assets/Resources/Games/trickClass.prefab | 416 ++++++++++++++---------
1 file changed, 263 insertions(+), 153 deletions(-)
diff --git a/Assets/Resources/Games/trickClass.prefab b/Assets/Resources/Games/trickClass.prefab
index 476e3f1e..2d0e1bb4 100644
--- a/Assets/Resources/Games/trickClass.prefab
+++ b/Assets/Resources/Games/trickClass.prefab
@@ -27,6 +27,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.35, y: -1.1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5506760278121746696}
m_Father: {fileID: 7488929755866823519}
@@ -43,6 +44,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -110,6 +112,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 6.13, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9050201431690794528}
m_RootOrder: 1
@@ -125,6 +128,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -192,6 +196,7 @@ Transform:
m_LocalRotation: {x: 0, y: -0.17364825, z: 0, w: 0.9848078}
m_LocalPosition: {x: 0.5, y: 0.073, z: -1.467}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8248491381081258080}
- {fileID: 5282853100341633190}
@@ -250,6 +255,7 @@ Transform:
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: 7024444778115842674}
- {fileID: 4984981779500137945}
@@ -282,6 +288,7 @@ Transform:
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: 1864634399468090613}
- {fileID: 2805817892094278801}
@@ -315,6 +322,7 @@ Transform:
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: 5015249734785180521}
- {fileID: 5996926452457285680}
@@ -332,6 +340,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -399,6 +408,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 20, y: 20, z: 0}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2049491332800905642}
m_RootOrder: 0
@@ -414,6 +424,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -481,6 +492,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.05, y: 2.3652556, z: 3.64}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 3
@@ -528,6 +540,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -11.55, y: -6.008895, z: 0.2}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 270213282485315182}
m_RootOrder: 4
@@ -575,6 +588,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.172, y: 2.24, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8272915755210452549}
- {fileID: 4282183760407212483}
@@ -592,6 +606,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -626,7 +641,7 @@ SpriteRenderer:
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
- m_Size: {x: 4.08, y: 5.0503106}
+ m_Size: {x: 4.25, y: 4.3402667}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
@@ -659,6 +674,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 4.45, y: 1.66, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 270213282485315182}
m_RootOrder: 0
@@ -706,6 +722,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.32, y: -1.9286046, z: 0.2}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 270213282485315182}
m_RootOrder: 3
@@ -751,8 +768,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2098236313642417821}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: 0.095, y: -1.2, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
+ m_LocalPosition: {x: 0.19, y: -4.14, z: 24}
+ m_LocalScale: {x: 3.4200003, y: 3.4200003, z: 3.4200003}
+ m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 2049491332800905642}
m_RootOrder: 3
@@ -768,6 +786,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -834,6 +853,7 @@ Transform:
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: 3395200941264334285}
m_Father: {fileID: 4058401002516718396}
@@ -866,6 +886,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.2985466, y: 0.24284542, z: 2.1663225}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 1
@@ -912,6 +933,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.455, y: 0.455, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4389737351449479942}
- {fileID: 6171372797069188628}
@@ -947,6 +969,7 @@ Transform:
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: 5439422992278930630}
- {fileID: 1069146004922609395}
@@ -1000,6 +1023,7 @@ Transform:
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: 8318852355974017578}
- {fileID: 6029919261637204356}
@@ -1061,8 +1085,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3418795074043480354}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -4.8047, y: -7.1124625, z: -5.74}
+ m_LocalPosition: {x: -10.13, y: -7.1124625, z: -5.74}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 6
@@ -1081,8 +1106,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
curve: {fileID: 3288589490341909789}
handleType: 0
- leftHandleLocalPosition: {x: 5.4743524, y: -0.42018557, z: 1.7583859}
- rightHandleLocalPosition: {x: -5.4743524, y: 0.42018557, z: -1.7583859}
+ leftHandleLocalPosition: {x: 7.8733406, y: 1.1667285, z: 2.2578032}
+ rightHandleLocalPosition: {x: -7.8733406, y: -1.1667285, z: -2.2578032}
--- !u!1 &3657839666287537226
GameObject:
m_ObjectHideFlags: 0
@@ -1110,6 +1135,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.159, y: 0.078, z: 0}
m_LocalScale: {x: 0.525, y: 0.525, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8297413771377288495}
m_RootOrder: 0
@@ -1125,6 +1151,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -1191,6 +1218,7 @@ Transform:
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: 2005696115261101270}
- {fileID: 270213282485315182}
@@ -1224,6 +1252,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 11.98, y: -6.42, z: -5.08}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1864634399468090613}
m_RootOrder: 1
@@ -1271,6 +1300,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.98, y: -0.8, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5996926452457285680}
m_RootOrder: 0
@@ -1286,6 +1316,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -1353,6 +1384,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -3.1106741, y: -0.49201435, z: 5}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 0
@@ -1373,7 +1405,7 @@ MonoBehaviour:
handleType: 0
leftHandleLocalPosition: {x: -2.327126, y: 0.19955647, z: 1.5433838}
rightHandleLocalPosition: {x: 2.327126, y: -0.19955647, z: -1.5433838}
---- !u!1 &4622791582068443419
+--- !u!1 &4310544144871334710
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -1381,40 +1413,42 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 7217473934934235568}
- - component: {fileID: 2889669679684938890}
+ - component: {fileID: 8023380170287309826}
+ - component: {fileID: 8724577660670761647}
m_Layer: 0
- m_Name: mobTrick_bgDesk3
+ m_Name: mobTrick_bgDesk2 (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!4 &7217473934934235568
+--- !u!4 &8023380170287309826
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4622791582068443419}
+ m_GameObject: {fileID: 4310544144871334710}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -7.53, y: -7.64, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
+ m_LocalPosition: {x: -13.25, y: -17.06, z: 8}
+ m_LocalScale: {x: 1.8, y: 1.8, z: 1.8}
+ m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 6171372797069188628}
- m_RootOrder: 2
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &2889669679684938890
+--- !u!212 &8724577660670761647
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 4622791582068443419}
+ m_GameObject: {fileID: 4310544144871334710}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -1443,18 +1477,49 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
- m_SortingOrder: -3
- m_Sprite: {fileID: -2744129390065220167, guid: 4777f54c8c25980428a483cf515e981d, type: 3}
+ m_SortingOrder: -1
+ m_Sprite: {fileID: -7631371983786943230, guid: 4777f54c8c25980428a483cf515e981d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
- m_Size: {x: 12.38, y: 2.68}
+ m_Size: {x: 14.41, y: 2.99}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
+--- !u!1 &4314987055336665312
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2166285457557110997}
+ m_Layer: 0
+ m_Name: cameraRef
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &2166285457557110997
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4314987055336665312}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -10}
+ m_LocalScale: {x: 1.0526316, y: 1.0526316, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 7799781267437701720}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &4680492963841683179
GameObject:
m_ObjectHideFlags: 0
@@ -1482,6 +1547,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -3.1106741, y: -0.49201435, z: 5}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1864634399468090613}
m_RootOrder: 0
@@ -1529,6 +1595,7 @@ Transform:
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: 3220906626812029788}
- {fileID: 2526216985021064235}
@@ -1582,6 +1649,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.45, y: -1.27, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1961949143142789026}
m_RootOrder: 1
@@ -1597,6 +1665,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -1663,10 +1732,11 @@ Transform:
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: 5576812527962747870}
- - {fileID: 1939370080128839836}
- - {fileID: 7217473934934235568}
+ - {fileID: 3413210812581273906}
+ - {fileID: 8023380170287309826}
+ - {fileID: 5827097936516676005}
m_Father: {fileID: 2049491332800905642}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -1695,8 +1765,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5096395877590586700}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: -1.43, y: -11.69, z: 4.37}
+ m_LocalPosition: {x: -0.86, y: -11.69, z: 2.07}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2805817892094278801}
m_RootOrder: 1
@@ -1715,8 +1786,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
curve: {fileID: 5261772982309671256}
handleType: 0
- leftHandleLocalPosition: {x: 0.38255858, y: 3.2152529, z: -0.8895941}
- rightHandleLocalPosition: {x: -0.38255858, y: -3.2152529, z: 0.8895941}
+ leftHandleLocalPosition: {x: 0.045773923, y: 4.9786997, z: -0.0007252693}
+ rightHandleLocalPosition: {x: -0.045773923, y: -4.9786997, z: 0.0007252693}
--- !u!1 &5155605184468058309
GameObject:
m_ObjectHideFlags: 0
@@ -1744,6 +1815,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.024, y: 0.009, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5614176317311911057}
m_Father: {fileID: 3414547825366335459}
@@ -1760,6 +1832,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -1810,6 +1883,7 @@ GameObject:
m_Component:
- component: {fileID: 2712533505047173825}
- component: {fileID: 6570045643125407281}
+ - component: {fileID: 5261135030869337965}
m_Layer: 0
m_Name: girl
m_TagString: Untagged
@@ -1825,8 +1899,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5360420740636381101}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -3.28, y: -1.7, z: 0}
- m_LocalScale: {x: 0.455, y: 0.455, z: 1}
+ m_LocalPosition: {x: -7.8, y: -4.3, z: 16}
+ m_LocalScale: {x: 1.1, y: 1.1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2205484085421406530}
- {fileID: 1961949143142789026}
@@ -1835,7 +1910,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &6570045643125407281
Animator:
- serializedVersion: 3
+ serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -1848,10 +1923,23 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
+ m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
- m_KeepAnimatorControllerStateOnDisable: 0
+ m_KeepAnimatorStateOnDisable: 0
+ m_WriteDefaultValuesOnDisable: 0
+--- !u!210 &5261135030869337965
+SortingGroup:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5360420740636381101}
+ m_Enabled: 1
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: -4
--- !u!1 &6043466246216488714
GameObject:
m_ObjectHideFlags: 0
@@ -1879,6 +1967,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0.8}
m_LocalScale: {x: 42.768044, y: 25.660835, z: 0.8}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2049491332800905642}
m_RootOrder: 2
@@ -1894,6 +1983,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -1962,6 +2052,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.455, y: 0.455, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6646177278795284587}
m_RootOrder: 1
@@ -1977,6 +2068,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -2029,17 +2121,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: eb420e9087e23a64eb3ca43a7620c211, type: 3}
m_Name:
m_EditorClassIdentifier:
- inList: 0
- state:
- gameObject: {fileID: 0}
- early: 0
- perfect: 0
- late: 0
- createBeat: 0
- eligibleHitsList: []
- aceTimes: 0
- isEligible: 0
- triggersAutoplay: 1
flyType: 0
startBeat: 0
type: 0
@@ -2070,6 +2151,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.189, y: -0.048113704, z: 2.195}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 4
@@ -2117,6 +2199,7 @@ Transform:
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: []
m_Father: {fileID: 2712533505047173825}
m_RootOrder: 0
@@ -2132,6 +2215,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -2199,6 +2283,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 5.67, y: -2.9, z: 0}
m_LocalScale: {x: 0.455, y: 0.455, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7488929755866823519}
- {fileID: 6310967655046720561}
@@ -2207,7 +2292,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &4171281603420513773
Animator:
- serializedVersion: 3
+ serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -2220,10 +2305,12 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
+ m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
- m_KeepAnimatorControllerStateOnDisable: 0
+ m_KeepAnimatorStateOnDisable: 0
+ m_WriteDefaultValuesOnDisable: 0
--- !u!1 &6999228461696713549
GameObject:
m_ObjectHideFlags: 0
@@ -2251,6 +2338,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.95, y: 0.95, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2049491332800905642}
- {fileID: 3414547825366335459}
@@ -2258,6 +2346,7 @@ Transform:
- {fileID: 9050201431690794528}
- {fileID: 4058401002516718396}
- {fileID: 6646177278795284587}
+ - {fileID: 2166285457557110997}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -2274,9 +2363,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
SoundSequences: []
- EligibleHits: []
scheduledInputs: []
- firstEnable: 0
playerAnim: {fileID: 4171281603420513773}
girlAnim: {fileID: 6570045643125407281}
warnAnim: {fileID: 3154933179428504539}
@@ -2317,6 +2404,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.45, y: -1.27, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1961949143142789026}
m_RootOrder: 0
@@ -2332,6 +2420,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -2400,6 +2489,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.455, y: 0.455, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6646177278795284587}
m_RootOrder: 0
@@ -2415,6 +2505,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -2467,17 +2558,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: eb420e9087e23a64eb3ca43a7620c211, type: 3}
m_Name:
m_EditorClassIdentifier:
- inList: 0
- state:
- gameObject: {fileID: 0}
- early: 0
- perfect: 0
- late: 0
- createBeat: 0
- eligibleHitsList: []
- aceTimes: 0
- isEligible: 0
- triggersAutoplay: 1
flyType: 0
startBeat: 0
type: 0
@@ -2505,8 +2585,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7310611812045732801}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -1.5, y: -0.8, z: 0}
- m_LocalScale: {x: 1.1, y: 1, z: 2}
+ m_LocalPosition: {x: -2.1, y: -0.8, z: 0}
+ m_LocalScale: {x: 1.25, y: 1, z: 3.5}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1420343226113066666}
- {fileID: 1376113234299623101}
@@ -2541,6 +2622,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.3992692, y: 2.7532198, z: 2.1399999}
m_LocalScale: {x: 0.95693785, y: 1.0526316, z: 0.5}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 2
@@ -2588,6 +2670,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2, y: -1.1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7488929755866823519}
m_RootOrder: 0
@@ -2603,6 +2686,7 @@ SpriteRenderer:
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -2670,6 +2754,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 7.355391, y: 3.5441406, z: -1.8722836}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2005696115261101270}
m_RootOrder: 5
@@ -2717,6 +2802,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 5.956936, y: 4.9981914, z: 0.0118204355}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 270213282485315182}
m_RootOrder: 1
@@ -2764,6 +2850,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.6806741, y: -0.49201435, z: 5}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3395200941264334285}
m_RootOrder: 0
@@ -2811,6 +2898,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 1.82, y: 6.3, z: 0.218}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 270213282485315182}
m_RootOrder: 2
@@ -2856,8 +2944,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8432671419974842299}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 13.274313, y: 4.604445, z: -5.806588}
+ m_LocalPosition: {x: 13.9, y: 5.05, z: -5.281}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3395200941264334285}
m_RootOrder: 1
@@ -2905,6 +2994,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.43, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4864494715953467641}
- {fileID: 6692913343775849876}
@@ -2958,6 +3048,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 4.45, y: 1.66, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2805817892094278801}
m_RootOrder: 0
@@ -2978,7 +3069,7 @@ MonoBehaviour:
handleType: 0
leftHandleLocalPosition: {x: 3.7113361, y: -0.6022707, z: -1.9092817}
rightHandleLocalPosition: {x: -3.7113361, y: 0.6022707, z: 1.9092817}
---- !u!1 &8653118620308232900
+--- !u!1 &8662781448235463849
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -2986,122 +3077,42 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 1939370080128839836}
- - component: {fileID: 4804089641556766968}
+ - component: {fileID: 3413210812581273906}
+ - component: {fileID: 5791659127136265107}
m_Layer: 0
- m_Name: mobTrick_bgDesk2
+ m_Name: mobTrick_bgDesk1 (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!4 &1939370080128839836
+--- !u!4 &3413210812581273906
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8653118620308232900}
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -7.369, y: -9.469, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_Children: []
- m_Father: {fileID: 6171372797069188628}
- m_RootOrder: 1
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &4804089641556766968
-SpriteRenderer:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8653118620308232900}
- m_Enabled: 1
- m_CastShadows: 0
- m_ReceiveShadows: 0
- m_DynamicOccludee: 1
- 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: -7631371983786943230, guid: 4777f54c8c25980428a483cf515e981d, type: 3}
- m_Color: {r: 1, g: 1, b: 1, a: 1}
- m_FlipX: 0
- m_FlipY: 0
- m_DrawMode: 0
- m_Size: {x: 14.41, y: 2.99}
- m_AdaptiveModeThreshold: 0.5
- m_SpriteTileMode: 0
- m_WasSpriteAssigned: 1
- m_MaskInteraction: 0
- m_SpriteSortPoint: 0
---- !u!1 &8722241423136028359
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 5576812527962747870}
- - component: {fileID: 5226347411050163934}
- m_Layer: 0
- m_Name: mobTrick_bgDesk1
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &5576812527962747870
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8722241423136028359}
+ m_GameObject: {fileID: 8662781448235463849}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -2.64, y: -10.9, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6171372797069188628}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!212 &5226347411050163934
+--- !u!212 &5791659127136265107
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 8722241423136028359}
+ m_GameObject: {fileID: 8662781448235463849}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@@ -3152,6 +3163,7 @@ GameObject:
m_Component:
- component: {fileID: 3414547825366335459}
- component: {fileID: 3154933179428504539}
+ - component: {fileID: 2832505672081154504}
m_Layer: 0
m_Name: objWarn
m_TagString: Untagged
@@ -3167,8 +3179,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9041054952499779364}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
- m_LocalPosition: {x: -1.34, y: 1.08, z: 0}
- m_LocalScale: {x: 0.455, y: 0.455, z: 1}
+ m_LocalPosition: {x: -3.45, y: 2.8, z: 16}
+ m_LocalScale: {x: 1.15, y: 1.15, z: 1.15}
+ m_ConstrainProportionsScale: 1
m_Children:
- {fileID: 8297413771377288495}
m_Father: {fileID: 7799781267437701720}
@@ -3176,7 +3189,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &3154933179428504539
Animator:
- serializedVersion: 3
+ serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -3189,7 +3202,104 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
+ m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
- m_KeepAnimatorControllerStateOnDisable: 0
+ m_KeepAnimatorStateOnDisable: 0
+ m_WriteDefaultValuesOnDisable: 0
+--- !u!210 &2832505672081154504
+SortingGroup:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9041054952499779364}
+ m_Enabled: 1
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!1 &9135951315644634110
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5827097936516676005}
+ - component: {fileID: 349749392362140030}
+ m_Layer: 0
+ m_Name: mobTrick_bgDesk3 (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5827097936516676005
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9135951315644634110}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -17.83, y: -18.04, z: 16}
+ m_LocalScale: {x: 2.4, y: 2.4, z: 2.4}
+ m_ConstrainProportionsScale: 1
+ m_Children: []
+ m_Father: {fileID: 6171372797069188628}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &349749392362140030
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9135951315644634110}
+ 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: -3
+ m_Sprite: {fileID: -2744129390065220167, guid: 4777f54c8c25980428a483cf515e981d, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 12.38, y: 2.68}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0