bug fixes

This commit is contained in:
streitixy 2024-02-26 08:40:42 -03:00
parent 88265bbb15
commit 9758ebaf16
2 changed files with 312 additions and 333 deletions

View file

@ -18,7 +18,7 @@ namespace HeavenStudio.Games.Loaders
{
public static Minigame AddGame(EventCaller eventCaller)
{
{
return new Minigame("bonOdori", "The☆Bon Odori \n<color=#adadad>(Za☆Bon Odori)</color>", "312B9F", false, false, new List<GameAction>()
{ new GameAction("bop", "Bop")
{ function = delegate {BonOdori.instance.Bop(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["toggle"], eventCaller.currentEntity["auto"]);},
@ -30,10 +30,10 @@ namespace HeavenStudio.Games.Loaders
},
},
new GameAction("pan", "Pan")
{
function = delegate {
var e = eventCaller.currentEntity;
string variation = "variation" + (new string[] { "Pan", "Pa", "Pa_n" })[e["type"]];
@ -54,10 +54,10 @@ namespace HeavenStudio.Games.Loaders
new Param("clapType", BonOdori.typeClap.SideClap, "Clap Type", "Set the type of clap.")
}
},
new GameAction("don", "Don")
{
function = delegate {
var e = eventCaller.currentEntity;
string variation = "variation" + (new string[] { "Don", "Do", "Do_n" })[e["type"]];
@ -76,7 +76,7 @@ namespace HeavenStudio.Games.Loaders
new Param("variationDo_n", BonOdori.variationDo_n.Do_nA, "Do-n Type", "Set the variation of the voice line."),
}
},
new GameAction("show text", "Show Text")
{
function = delegate {BonOdori.instance.ShowText(eventCaller.currentEntity["line 1"], eventCaller.currentEntity["line 2"], eventCaller.currentEntity["line 3"], eventCaller.currentEntity["line 4"], eventCaller.currentEntity["line 5"]);},
@ -97,7 +97,7 @@ namespace HeavenStudio.Games.Loaders
},
priority = 1
},
@ -153,13 +153,13 @@ namespace HeavenStudio.Games.Loaders
}
},
});
}
}
};
};
namespace HeavenStudio.Games
@ -170,8 +170,8 @@ namespace HeavenStudio.Games
public class BonOdori : Minigame
{
string prefix;
double beatUniversal;
string prefix;
double beatUniversal;
string suffix;
SpriteRenderer darkPlane;
bool goBopDonpans;
@ -209,7 +209,7 @@ namespace HeavenStudio.Games
[SerializeField] TMP_Text Text3;
[SerializeField] TMP_Text Text4;
[SerializeField] TMP_Text Text5;
[SerializeField] TMP_Text Text6;
[SerializeField] TMP_Text Text7;
[SerializeField] TMP_Text Text8;
@ -253,7 +253,7 @@ namespace HeavenStudio.Games
Pa_nC = 1
}
public enum variationPa
{
{
PaG = 0
}
@ -261,7 +261,7 @@ namespace HeavenStudio.Games
{
DonA = 0,
DonD = 1,
DonC = 2,
DonC = 2,
DonG = 3
}
public enum variationDo_n
@ -284,7 +284,7 @@ namespace HeavenStudio.Games
clapTypeGlobal = 0;
instance = this;
Text1_GUI = Text1.GetComponent<TextMeshProUGUI>();
@ -298,14 +298,14 @@ namespace HeavenStudio.Games
Text9_GUI = Text9.GetComponent<TextMeshProUGUI>();
Text10_GUI = Text10.GetComponent<TextMeshProUGUI>();
}
public void OnStop()
{
DarkPlane.GetComponent<SpriteRenderer>().color = new Color(1f, 1f, 1f, 0f);
DarkPlane.GetComponent<SpriteRenderer>().color = new Color(1f, 1f, 1f, 0f);
}
public void Update()
{
@ -339,47 +339,48 @@ namespace HeavenStudio.Games
}
if (PlayerInput.GetIsAction(BonOdori.InputAction_BasicPress) && !IsExpectingInputNow(InputAction_BasicPress)){
if (PlayerInput.GetIsAction(BonOdori.InputAction_BasicPress) && !IsExpectingInputNow(InputAction_BasicPress))
{
ScoreMiss();
SoundByte.PlayOneShotGame("bonOdori/clap");
if (clapTypeGlobal == 0)
{
{
clapTypeString = "ClapSide";
}
else
{
clapTypeString = "ClapFront";
}
Player.Play(clapTypeString);
if (!goBopDonpans)
{
Player.Play(clapTypeString);
if (!goBopDonpans)
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beatUniversal + 1d, delegate { Player.Play("NeutralClapped"); CPU1.Play("NeutralClapped"); CPU2.Play("NeutralClapped"); CPU3.Play("NeutralClapped"); goBopDonpans = true;})
new BeatAction.Action(beatUniversal + 1d, delegate { Player.Play("NeutralClapped"); CPU1.Play("NeutralClapped"); CPU2.Play("NeutralClapped"); CPU3.Play("NeutralClapped");}),
});
}
}
}
}
public void Clap(double beat, int variation, int typeSpeak, bool muted, int clapType)
{
{
if (clapType == 1)
{
clapTypeGlobal = 1;
@ -391,192 +392,142 @@ namespace HeavenStudio.Games
if (muted)
{
ScheduleInput(beat, 0f, InputAction_BasicPress, Success, Miss, Empty);
}
}
else
{
switch (typeSpeak){
case 0:
switch (variation){
case 0:
SoundByte.PlayOneShotGame("bonOdori/pan1");
break;
case 1:
SoundByte.PlayOneShotGame("bonOdori/pan2"); break;
case 2:
SoundByte.PlayOneShotGame("bonOdori/pan3");
break;}
break;
case 2:
switch (variation){
case 0:
SoundByte.PlayOneShotGame("bonOdori/pa_n1");
break;
case 1:
SoundByte.PlayOneShotGame("bonOdori/pa_n2");
break;}
break;
case 1:
SoundByte.PlayOneShotGame("bonOdori/pa1");
break;
string clip = typeSpeak switch
{
0 => "pan",
1 => "pa_n",
2 or _ => "pa",
};
SoundByte.PlayOneShotGame($"bonOdori/" + clip + (variation + 1));
beatUniversal = beat;
ScheduleInput(beat, 0f, InputAction_BasicPress, Success, Miss, Empty);
}
}
public void Sound(double beat, int variation, int typeSpeak)
{
string clip = typeSpeak switch
{
0 => "don",
1 => "do_n",
2 or _ => "do",
};
SoundByte.PlayOneShotGame($"bonOdori/" + clip + (variation + 1));
}
beatUniversal = beat;
ScheduleInput(beat, 0f, InputAction_BasicPress, Success, Miss, Empty);}
}
public void Sound(double beat, int variation, int typeSpeak )
{ switch (typeSpeak){
case 0:
switch (variation){
case 0:
SoundByte.PlayOneShotGame("bonOdori/don1");
break;
case 1:
SoundByte.PlayOneShotGame("bonOdori/don2");
break;
case 2:
SoundByte.PlayOneShotGame("bonOdori/don3");
break;
case 3:
SoundByte.PlayOneShotGame("bonOdori/don4");
break;
}
break;
case 2:
switch (variation) {
case 0:
SoundByte.PlayOneShotGame("bonOdori/do_n1");
break;
case 1:
SoundByte.PlayOneShotGame("bonOdori/do_n2");
break;
}
break;
case 1:
switch (variation){
case 0:
SoundByte.PlayOneShotGame("bonOdori/do1");
break;
case 1:
SoundByte.PlayOneShotGame("bonOdori/do2");
break;
}
break;
}
}
public void Success(PlayerActionEvent caller, float state)
{
if (clapTypeGlobal == 0)
{
clapTypeString = "ClapSide";
}
else
{
clapTypeString = "ClapFront";
}
Player.Play(clapTypeString);
CPU1.Play(clapTypeString);
CPU2.Play(clapTypeString);
CPU3.Play(clapTypeString);
if (!goBopDonpans)
{
{
clapTypeString = "ClapSide";
}
else
{
clapTypeString = "ClapFront";
}
BeatAction.New(instance, new List<BeatAction.Action>()
Player.Play(clapTypeString);
CPU1.Play(clapTypeString);
CPU2.Play(clapTypeString);
CPU3.Play(clapTypeString);
if (!goBopDonpans)
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beatUniversal + 1d, delegate { Player.Play("NeutralClapped"); CPU1.Play("NeutralClapped"); CPU2.Play("NeutralClapped"); CPU3.Play("NeutralClapped");}),
});
}
SoundByte.PlayOneShotGame("bonOdori/clap")
}
SoundByte.PlayOneShotGame("bonOdori/clap");
}
public void Miss(PlayerActionEvent caller)
{
CPU1.Play(clapTypeString);
CPU2.Play(clapTypeString);
CPU3.Play(clapTypeString);
SoundByte.PlayOneShot("miss");
BeatAction.New(instance, new List<BeatAction.Action>()
CPU1.Play(clapTypeString);
CPU2.Play(clapTypeString);
CPU3.Play(clapTypeString);
SoundByte.PlayOneShot("miss");
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beatUniversal + 1d, delegate { Face.Play("Sad");}),
new BeatAction.Action(beatUniversal + 3d, delegate {Face.Play("Neutral");})
});
}
public void Empty(PlayerActionEvent caller)
{
if (clapTypeGlobal == 0)
{
clapTypeString = "ClapSide";
}
else
{
clapTypeString = "ClapFront";
}
Player.Play(clapTypeString);
CPU1.Play(clapTypeString);
CPU2.Play(clapTypeString);
CPU3.Play(clapTypeString);
if (!goBopDonpans)
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beatUniversal + 1d, delegate { Player.Play("NeutralClapped"); CPU1.Play("NeutralClapped"); CPU2.Play("NeutralClapped"); CPU3.Play("NeutralClapped");}),
});
}
SoundByte.PlayOneShot("nearMiss");
}
string ChangeColor(string text, bool isScroll)
{
if (text.Contains("r|") | text.Contains("y|") | text.Contains("g|")){
if (!isScroll){
return text.Replace("r|", "<color=#ff0000>")
.Replace("g|", "<color=#00ff00>")
.Replace("y|", "<color=#ffff00>")
+ "</color>";
{
clapTypeString = "ClapSide";
}
else
{
return text.Replace("r|", "<color=#ff00ff>")
.Replace("g|", "<color=#00ffff>")
.Replace("y|", "<color=#ffffff>")
+ "</color>";
clapTypeString = "ClapFront";
}
}}
Player.Play(clapTypeString);
CPU1.Play(clapTypeString);
CPU2.Play(clapTypeString);
CPU3.Play(clapTypeString);
if (!goBopDonpans)
{
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beatUniversal + 1d, delegate { Player.Play("NeutralClapped"); CPU1.Play("NeutralClapped"); CPU2.Play("NeutralClapped"); CPU3.Play("NeutralClapped");}),
});
}
SoundByte.PlayOneShot("nearMiss");
}
string ChangeColor(string text, bool isScroll)
{
if (text.Contains("r|") | text.Contains("y|") | text.Contains("g|"))
{
if (!isScroll)
{
return text.Replace("r|", "<color=#ff0000>")
.Replace("g|", "<color=#00ff00>")
.Replace("y|", "<color=#ffff00>")
+ "</color>";
}
else
{
return text.Replace("r|", "<color=#ff00ff>")
.Replace("g|", "<color=#00ffff>")
.Replace("y|", "<color=#ffffff>")
+ "</color>";
}
}
return text;
}
}
public void ShowText(string text1, string text2, string text3, string text4, string text5)
{
if (text1 is not "" && text1 is not "Type r| for red text, g| for green text and y| for yellow text. These can be used multiple times in a single line."){
if (text1 is not "" && text1 is not "Type r| for red text, g| for green text and y| for yellow text. These can be used multiple times in a single line.")
{
if (Scroll1 is not null)
{
StopCoroutine(Scroll1);
@ -587,12 +538,13 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
text1 = ChangeColor(text1, false);
Text1.text = text1;
Text6.text = ChangeColor(originalText1, true);
}
if (text2 is not ""){
}
if (text2 is not "")
{
if (Scroll2 is not null)
{
StopCoroutine(Scroll2);
@ -603,9 +555,10 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
text2 = ChangeColor(text2, false);
Text2.text = text2;
Text7.text = ChangeColor(originalText2, true);
}
if (text3 is not ""){
}
if (text3 is not "")
{
if (Scroll3 is not null)
{
StopCoroutine(Scroll3);
@ -613,14 +566,15 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
}
originalText3 = text3;
Text8.GetComponent<TextMeshPro>().SetMask(0, new Vector4(-10f, -10f, -10f, 10));
text3 = ChangeColor(text3, false);
Text3.text = text3;
Text8.text = ChangeColor(originalText3, true);
}
if (text4 is not ""){
}
if (text4 is not "")
{
if (Scroll4 is not null)
{
StopCoroutine(Scroll4);
@ -631,11 +585,12 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
text4 = ChangeColor(text4, false);
Text4.text = text4;
Text9.text = text4;
Text9.text = text4;
Text9.text = ChangeColor(originalText4, true);
}
if (text5 is not ""){
}
if (text5 is not "")
{
if (Scroll5 is not null)
{
StopCoroutine(Scroll5);
@ -647,12 +602,14 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
Text5.text = text5;
Text10.text = ChangeColor(originalText5, true);
}
}
}
public void DeleteText(bool text1, bool text2, bool text3, bool text4, bool text5){
if (text1 == true){
public void DeleteText(bool text1, bool text2, bool text3, bool text4, bool text5)
{
if (text1 == true)
{
if (Scroll1 is not null)
{
StopCoroutine(Scroll1);
@ -662,7 +619,8 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
Text1.text = "";
Text6.text = "";
}
if (text2 == true){
if (text2 == true)
{
if (Scroll2 is not null)
{
StopCoroutine(Scroll2);
@ -672,7 +630,8 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
Text2.text = "";
Text7.text = "";
}
if (text3 == true){
if (text3 == true)
{
if (Scroll3 is not null)
{
StopCoroutine(Scroll3);
@ -682,7 +641,8 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
Text3.text = "";
Text8.text = "";
}
if (text4 == true){
if (text4 == true)
{
if (Scroll4 is not null)
{
StopCoroutine(Scroll4);
@ -692,7 +652,8 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
Text4.text = "";
Text9.text = "";
}
if (text5 == true){
if (text5 == true)
{
if (Scroll5 is not null)
{
StopCoroutine(Scroll5);
@ -705,49 +666,57 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
}
IEnumerator SmoothText(TMP_Text text, float length, double beat)
{
Conductor conductor = new Conductor();
float startTime = Time.time;
float endTime = startTime + length;
float duration = ((length / conductor.GetBpmAtBeat(beat)) * 60);
while (Time.time < endTime)
IEnumerator SmoothText(TMP_Text text, float length, double beat)
{
float t = ((Time.time - startTime) / duration);
float maskValue = Mathf.Lerp(-10f, -7f, t);
Conductor conductor = new Conductor();
float startTime = Time.time;
float endTime = startTime + length;
float duration = ((length / conductor.GetBpmAtBeat(beat)) * 60);
text.GetComponent<TextMeshPro>().SetMask(0, new Vector4(-10, -10, maskValue, 10));
while (Time.time < endTime)
{
float t = ((Time.time - startTime) / duration);
float maskValue = Mathf.Lerp(-10f, -7f, t);
text.GetComponent<TextMeshPro>().SetMask(0, new Vector4(-10, -10, maskValue, 10));
yield return null;
}
}
public void ScrollText(bool text1, bool text2, bool text3, bool text4, bool text5, float length, double beat)
{
if (text1)
{
Scroll1 = StartCoroutine(SmoothText(Text6, length, beat));
}
if (text2)
{
Scroll2 = StartCoroutine(SmoothText(Text7, length, beat));
}
if (text3)
{
Scroll3 = StartCoroutine(SmoothText(Text8, length, beat));
}
if (text4)
{
Scroll4 = StartCoroutine(SmoothText(Text9, length, beat));
}
if (text5)
{
Scroll5 = StartCoroutine(SmoothText(Text10, length, beat));
}
yield return null;
}
}
public void ScrollText(bool text1, bool text2, bool text3, bool text4, bool text5, float length, double beat)
{
if (text1){
Scroll1 = StartCoroutine(SmoothText(Text6, length, beat));}
if (text2){
Scroll2 = StartCoroutine(SmoothText(Text7, length, beat));}
if (text3){
Scroll3 = StartCoroutine(SmoothText(Text8, length, beat));}
if (text4){
Scroll4 = StartCoroutine(SmoothText(Text9, length, beat));}
if (text5){
Scroll5 = StartCoroutine(SmoothText(Text10, length, beat));}
}
public void Bop(double beat, float length, bool shouldBop, bool autoBop)
public void Bop(double beat, float length, bool shouldBop, bool autoBop)
{
if (!shouldBop) { goBopDonpans = false; goBopJudge = false; return; }
goBopDonpans = autoBop;
goBopJudge = autoBop;
if (autoBop) { return;}
goBopDonpans = autoBop; goBopJudge = autoBop;
if (autoBop && shouldBop) { return;}
if (shouldBop)
{
for (int i = 0; i < length; i++)
@ -774,37 +743,41 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
})
});
}
}
else
{
return;
}
}
public void Bow(double beat, float length)
{
if (goBopDonpans == true)
{
bopDonpans = true;
}
else
{
bopDonpans = false;
}
public void Bow(double beat, float length)
{
if (goBopDonpans == true)
{
bopDonpans = true;
}
else
{
bopDonpans = false;
}
goBopDonpans = false;
Player.Play("Bow");
CPU1.Play("Bow");
CPU2.Play("Bow");
CPU3.Play("Bow");
BeatAction.New(instance, new List<BeatAction.Action>()
}
goBopDonpans = false;
Player.Play("Bow");
CPU1.Play("Bow");
CPU2.Play("Bow");
CPU3.Play("Bow");
BeatAction.New(instance, new List<BeatAction.Action>()
{
new BeatAction.Action(beat + length, delegate { Player.Play("NeutralBopped"); CPU1.Play("NeutralBopped");CPU2.Play("NeutralBopped"); CPU3.Play("NeutralBopped"); if (bopDonpans) {goBopDonpans = true;}})
});
}
// public void Spin(double beat, float length)
// {
}
// public void Spin(double beat, float length)
// {
// }
// }
public override void OnBeatPulse(double beat)
{
if (goBopDonpans)
@ -820,69 +793,73 @@ SoundByte.PlayOneShotGame("bonOdori/clap")
Judge.Play("Bop");
}
}
public void DarkBG(double beat, bool toggle, float length)
{
DarkerBG = StartCoroutine(DarkBGCoroutine(beat, toggle, length));
}
IEnumerator DarkBGCoroutine(double beat, bool toggle, float length)
{
if (toggle)
{
if (darkBgIsOn)
public void DarkBG(double beat, bool toggle, float length)
{
yield return null;
DarkerBG = StartCoroutine(DarkBGCoroutine(beat, toggle, length));
}
else
{
float startTime = Time.time;
Conductor con = new Conductor();
float realLength = length / con.GetBpmAtBeat(beat) * 60;
while (Time.time < realLength + startTime)
IEnumerator DarkBGCoroutine(double beat, bool toggle, float length)
{
if (toggle)
{
if (darkBgIsOn)
{
yield return null;
}
else
{
darkPlane.color = new Color(1f, 1f, 1f, Mathf.Lerp(0f, 0.4666f, (Time.time - startTime) / realLength));
darkBgIsOn = true;
yield return null;
float startTime = Time.time;
Conductor con = new Conductor();
float realLength = length / con.GetBpmAtBeat(beat) * 60;
while (Time.time < realLength + startTime)
{
}}}
else
{
if (!darkBgIsOn)
{
yield return null;
darkPlane.color = new Color(1f, 1f, 1f, Mathf.Lerp(0f, 0.4666f, (Time.time - startTime) / realLength));
darkBgIsOn = true;
yield return null;
}
}
}
else
{
if (!darkBgIsOn)
{
yield return null;
}
else
{
float startTime = Time.time;
Conductor con = new Conductor();
float realLength = length / con.GetBpmAtBeat(beat) * 60;
while (Time.time < realLength + startTime)
{
darkPlane.color = new Color(1f, 1f, 1f, Mathf.Lerp(0.4666f, 0f, (Time.time - startTime) / realLength));
darkBgIsOn = true;
yield return null;
}
}
}
}
else
{
float startTime = Time.time;
Conductor con = new Conductor();
float realLength = length / con.GetBpmAtBeat(beat) * 60;
while (Time.time < realLength + startTime)
{
darkPlane.color = new Color(1f, 1f, 1f, Mathf.Lerp(0.4666f,0f, (Time.time - startTime) / realLength));
darkBgIsOn = true;
yield return null;
}
}
}
}}}
}

View file

@ -17,6 +17,8 @@ MonoBehaviour:
DenseViewWidthThreshold: 512
_disableAutoReloadInBackground: 0
ImportedScriptPaths:
- Assets/Scripts/Games/Tunnel/Tunnel.cs
- Assets/Scripts/USG.g/LoadMinigames.Minigames.MinigameLoaderGenerator.g.cs
- Assets/Scripts/Games/ClappyTrio/ClappyTrio.cs
- Assets/Scripts/Games/BonOdori/BonOdori.cs
PathsToSkipImportEvent: []
PathsToIgnoreOverwriteSettingOnAttribute: []