implement #648 "properly"
try to fix weird performance regression in board meeting
This commit is contained in:
parent
5cf8422457
commit
cda15b8cf0
|
@ -643,22 +643,22 @@ namespace HeavenStudio.Games
|
||||||
bgMat.SetColor("_Color", bgColorFrom);
|
bgMat.SetColor("_Color", bgColorFrom);
|
||||||
cloudMat.SetColor("_Color", cloudColorFrom);
|
cloudMat.SetColor("_Color", cloudColorFrom);
|
||||||
objectMat.SetColor("_Color", objectsColorFrom);
|
objectMat.SetColor("_Color", objectsColorFrom);
|
||||||
lightsColor = (lastTime == DayNightCycle.Night) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0);
|
lightsColor = (lastTime == DayNightCycle.Twilight) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0);
|
||||||
}
|
}
|
||||||
else if (normalizedBeat >= 0 && normalizedBeat <= 1f)
|
else if (normalizedBeat >= 0 && normalizedBeat <= 1f)
|
||||||
{
|
{
|
||||||
bgMat.SetColor("_Color", GetEasedColor(bgColorFrom, bgColorTo));
|
bgMat.SetColor("_Color", GetEasedColor(bgColorFrom, bgColorTo));
|
||||||
cloudMat.SetColor("_Color", GetEasedColor(cloudColorFrom, cloudColorTo));
|
cloudMat.SetColor("_Color", GetEasedColor(cloudColorFrom, cloudColorTo));
|
||||||
objectMat.SetColor("_Color", GetEasedColor(objectsColorFrom, objectsColorTo));
|
objectMat.SetColor("_Color", GetEasedColor(objectsColorFrom, objectsColorTo));
|
||||||
lightsColor = GetEasedColor((lastTime == DayNightCycle.Night) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0),
|
lightsColor = GetEasedColor((lastTime == DayNightCycle.Twilight) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0),
|
||||||
(currentTime == DayNightCycle.Night) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0));
|
(currentTime == DayNightCycle.Twilight) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0));
|
||||||
}
|
}
|
||||||
else if (normalizedBeat > 1)
|
else if (normalizedBeat > 1)
|
||||||
{
|
{
|
||||||
bgMat.SetColor("_Color", bgColorTo);
|
bgMat.SetColor("_Color", bgColorTo);
|
||||||
cloudMat.SetColor("_Color", cloudColorTo);
|
cloudMat.SetColor("_Color", cloudColorTo);
|
||||||
objectMat.SetColor("_Color", objectsColorTo);
|
objectMat.SetColor("_Color", objectsColorTo);
|
||||||
lightsColor = (currentTime == DayNightCycle.Night) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0);
|
lightsColor = (currentTime == DayNightCycle.Twilight) ? new Color(1, 1, 1, 1) : new Color(1, 1, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
island2Lights.color = lightsColor;
|
island2Lights.color = lightsColor;
|
||||||
|
@ -698,7 +698,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
DayNightCycle.Day => Color.white,
|
DayNightCycle.Day => Color.white,
|
||||||
DayNightCycle.Noon => noonColor,
|
DayNightCycle.Noon => noonColor,
|
||||||
DayNightCycle.Night => nightColor,
|
DayNightCycle.Twilight => nightColor,
|
||||||
_ => throw new System.NotImplementedException()
|
_ => throw new System.NotImplementedException()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -706,7 +706,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
DayNightCycle.Day => Color.white,
|
DayNightCycle.Day => Color.white,
|
||||||
DayNightCycle.Noon => noonColor,
|
DayNightCycle.Noon => noonColor,
|
||||||
DayNightCycle.Night => nightColor,
|
DayNightCycle.Twilight => nightColor,
|
||||||
_ => throw new System.NotImplementedException()
|
_ => throw new System.NotImplementedException()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -714,7 +714,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
DayNightCycle.Day => Color.white,
|
DayNightCycle.Day => Color.white,
|
||||||
DayNightCycle.Noon => noonColorCloud,
|
DayNightCycle.Noon => noonColorCloud,
|
||||||
DayNightCycle.Night => nightColorCloud,
|
DayNightCycle.Twilight => nightColorCloud,
|
||||||
_ => throw new System.NotImplementedException()
|
_ => throw new System.NotImplementedException()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -722,7 +722,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
DayNightCycle.Day => Color.white,
|
DayNightCycle.Day => Color.white,
|
||||||
DayNightCycle.Noon => noonColorCloud,
|
DayNightCycle.Noon => noonColorCloud,
|
||||||
DayNightCycle.Night => nightColorCloud,
|
DayNightCycle.Twilight => nightColorCloud,
|
||||||
_ => throw new System.NotImplementedException()
|
_ => throw new System.NotImplementedException()
|
||||||
};
|
};
|
||||||
DayNightCycleUpdate();
|
DayNightCycleUpdate();
|
||||||
|
@ -760,7 +760,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
Day = 0,
|
Day = 0,
|
||||||
Noon = 1,
|
Noon = 1,
|
||||||
Night = 2
|
Twilight = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServeObject(double beat, double targetBeat, bool type)
|
public void ServeObject(double beat, double targetBeat, bool type)
|
||||||
|
|
|
@ -66,9 +66,9 @@ namespace HeavenStudio.Games.Loaders
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new List<string>() {"rvl", "normal"},
|
new List<string>() { "rvl", "normal" },
|
||||||
"rvlrotation", "en",
|
"rvlrotation", "en",
|
||||||
new List<string>() {"en"}
|
new List<string>() { "en" }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
foreach(var evt in scheduledInputs)
|
foreach (var evt in scheduledInputs)
|
||||||
{
|
{
|
||||||
evt.Disable();
|
evt.Disable();
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
if (cond.isPlaying && !cond.isPaused)
|
if (cond.isPlaying && !cond.isPaused)
|
||||||
{
|
{
|
||||||
if (PlayerInput.GetIsAction(InputAction_BasicPressing) && !IsExpectingInputNow(InputAction_BasicPress.inputLockCategory))
|
if (PlayerInput.GetIsAction(InputAction_BasicPressing) && !IsExpectingInputNow(InputAction_BasicPress))
|
||||||
{
|
{
|
||||||
if (executives[executiveCount - 1].spinning)
|
if (executives[executiveCount - 1].spinning)
|
||||||
{
|
{
|
||||||
|
@ -133,10 +133,6 @@ namespace HeavenStudio.Games
|
||||||
SoundByte.PlayOneShotGame("boardMeeting/miss");
|
SoundByte.PlayOneShotGame("boardMeeting/miss");
|
||||||
SoundByte.PlayOneShot("miss");
|
SoundByte.PlayOneShot("miss");
|
||||||
ScoreMiss();
|
ScoreMiss();
|
||||||
foreach (var evt in scheduledInputs)
|
|
||||||
{
|
|
||||||
evt.Disable();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -150,7 +146,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
void SingleBop()
|
void SingleBop()
|
||||||
{
|
{
|
||||||
if (assistantCanBop)
|
if (assistantCanBop)
|
||||||
{
|
{
|
||||||
if (missCounter > 0) assistantAnim.DoScaledAnimationAsync("MissBop", 0.5f);
|
if (missCounter > 0) assistantAnim.DoScaledAnimationAsync("MissBop", 0.5f);
|
||||||
else assistantAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
else assistantAnim.DoScaledAnimationAsync("Bop", 0.5f);
|
||||||
|
@ -196,8 +192,8 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
new BeatAction.Action(beat, delegate { assistantAnim.DoScaledAnimationAsync("One", 0.5f); }),
|
new BeatAction.Action(beat, delegate { assistantAnim.DoScaledAnimationAsync("One", 0.5f); }),
|
||||||
new BeatAction.Action(beat + 1, delegate { assistantAnim.DoScaledAnimationAsync("Three", 0.5f); }),
|
new BeatAction.Action(beat + 1, delegate { assistantAnim.DoScaledAnimationAsync("Three", 0.5f); }),
|
||||||
new BeatAction.Action(beat + 2, delegate
|
new BeatAction.Action(beat + 2, delegate
|
||||||
{
|
{
|
||||||
foreach (var executive in executives)
|
foreach (var executive in executives)
|
||||||
{
|
{
|
||||||
if (executive.player) continue;
|
if (executive.player) continue;
|
||||||
|
@ -214,7 +210,7 @@ namespace HeavenStudio.Games
|
||||||
}),
|
}),
|
||||||
new BeatAction.Action(beat + 2.5f, delegate { assistantCanBop = true; })
|
new BeatAction.Action(beat + 2.5f, delegate { assistantCanBop = true; })
|
||||||
});
|
});
|
||||||
ScheduleInput(beat, 2f, InputAction_BasicPress, JustAssistant, MissAssistant, Empty);
|
ScheduleInput(beat, 2f, InputAction_BasicPress, JustAssistant, MissAssistant, Empty, CanJust);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stop(double beat, float length)
|
public void Stop(double beat, float length)
|
||||||
|
@ -225,23 +221,22 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (executives[i].player) break;
|
if (executives[i].player) break;
|
||||||
int index = i;
|
int index = i;
|
||||||
stops.Add(new BeatAction.Action(beat + length * i, delegate
|
int ex = executiveCount;
|
||||||
|
if (executiveCount < 4) ex = 4;
|
||||||
|
if (index < ex - 3)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("boardMeeting/stopA", beat + length * i);
|
||||||
|
}
|
||||||
|
else if (index == ex - 3)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("boardMeeting/stopB", beat + length * i);
|
||||||
|
}
|
||||||
|
else if (index == ex - 2)
|
||||||
|
{
|
||||||
|
SoundByte.PlayOneShotGame("boardMeeting/stopC", beat + length * i);
|
||||||
|
}
|
||||||
|
stops.Add(new BeatAction.Action(beat + length * i, delegate
|
||||||
{
|
{
|
||||||
int ex = executiveCount;
|
|
||||||
if (executiveCount < 4) ex = 4;
|
|
||||||
if (index < ex - 3)
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("boardMeeting/stopA");
|
|
||||||
}
|
|
||||||
else if (index == ex - 3)
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("boardMeeting/stopB");
|
|
||||||
}
|
|
||||||
else if (index == ex - 2)
|
|
||||||
{
|
|
||||||
SoundByte.PlayOneShotGame("boardMeeting/stopC");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index == executiveCount - 2 && !executives[executiveCount - 1].spinning)
|
if (index == executiveCount - 2 && !executives[executiveCount - 1].spinning)
|
||||||
{
|
{
|
||||||
if (chairLoopSound != null)
|
if (chairLoopSound != null)
|
||||||
|
@ -250,12 +245,12 @@ namespace HeavenStudio.Games
|
||||||
chairLoopSound = null;
|
chairLoopSound = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
executives[index].Stop();
|
executives[index].Stop();
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
stops.Add(new BeatAction.Action(beat + length * executiveCount + 0.5f, delegate { executivesCanBop = true; }));
|
stops.Add(new BeatAction.Action(beat + length * executiveCount + 0.5f, delegate { executivesCanBop = true; }));
|
||||||
BeatAction.New(instance, stops);
|
BeatAction.New(instance, stops);
|
||||||
ScheduleInput(beat, length * (executiveCount - 1), InputAction_BasicPress, Just, Miss, Empty);
|
ScheduleInput(beat, length * (executiveCount - 1), InputAction_BasicPress, Just, Miss, Empty, CanJust);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare()
|
public void Prepare()
|
||||||
|
@ -303,6 +298,7 @@ namespace HeavenStudio.Games
|
||||||
{
|
{
|
||||||
if (start > executiveCount || end > executiveCount) return;
|
if (start > executiveCount || end > executiveCount) return;
|
||||||
bool forceStart = false;
|
bool forceStart = false;
|
||||||
|
chairLoopSound?.KillLoop(0);
|
||||||
if (chairLoopSound == null)
|
if (chairLoopSound == null)
|
||||||
{
|
{
|
||||||
chairLoopSound = SoundByte.PlayOneShotGame("boardMeeting/chairLoop", -1, 1, 1, true);
|
chairLoopSound = SoundByte.PlayOneShotGame("boardMeeting/chairLoop", -1, 1, 1, true);
|
||||||
|
@ -386,6 +382,11 @@ namespace HeavenStudio.Games
|
||||||
InitExecutives();
|
InitExecutives();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CanJust()
|
||||||
|
{
|
||||||
|
return executives[executiveCount - 1].spinning;
|
||||||
|
}
|
||||||
|
|
||||||
void Just(PlayerActionEvent caller, float state)
|
void Just(PlayerActionEvent caller, float state)
|
||||||
{
|
{
|
||||||
if (chairLoopSound != null)
|
if (chairLoopSound != null)
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace HeavenStudio.Games.Loaders
|
||||||
defaultLength = 0.5f,
|
defaultLength = 0.5f,
|
||||||
parameters = new()
|
parameters = new()
|
||||||
{
|
{
|
||||||
new("d", DoubleDate.DayTime.Noon, "Time", "Set the time of day.")
|
new("d", DoubleDate.DayTime.Sunset, "Time", "Set the time of day.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -192,7 +192,7 @@ namespace HeavenStudio.Games
|
||||||
public enum DayTime
|
public enum DayTime
|
||||||
{
|
{
|
||||||
Day,
|
Day,
|
||||||
Noon
|
Sunset
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DayTimeCheck(double beat)
|
private void DayTimeCheck(double beat)
|
||||||
|
@ -206,7 +206,7 @@ namespace HeavenStudio.Games
|
||||||
|
|
||||||
public void SetTime(int time)
|
public void SetTime(int time)
|
||||||
{
|
{
|
||||||
if (time == (int)DayTime.Noon)
|
if (time == (int)DayTime.Sunset)
|
||||||
{
|
{
|
||||||
doubleDateCellAnim.SetColor("_Color", noonColor);
|
doubleDateCellAnim.SetColor("_Color", noonColor);
|
||||||
bgSquare.color = squareColor;
|
bgSquare.color = squareColor;
|
||||||
|
|
|
@ -41,5 +41,6 @@ MonoBehaviour:
|
||||||
- Assets/Scripts/Games/AirRally/AirRally.cs
|
- Assets/Scripts/Games/AirRally/AirRally.cs
|
||||||
- Assets/Scripts/LevelEditor/Editor.cs
|
- Assets/Scripts/LevelEditor/Editor.cs
|
||||||
- Assets/Scripts/Common/MemRenderer.cs
|
- Assets/Scripts/Common/MemRenderer.cs
|
||||||
|
- Assets/Scripts/Games/BoardMeeting/BoardMeeting.cs
|
||||||
PathsToSkipImportEvent: []
|
PathsToSkipImportEvent: []
|
||||||
PathsToIgnoreOverwriteSettingOnAttribute: []
|
PathsToIgnoreOverwriteSettingOnAttribute: []
|
||||||
|
|
Loading…
Reference in a new issue