Misc. Fixes and Additions (#440)

* Ringside fixes

* Clappy Trio bop logic fix

* Quiz show answer reaction fix

* prequel background begone!

* You can now hide the alien in spaceball

* Fixed lightning toss jank

* btsds recolor, need to add lights next

* Btsds lights and recolor

* fixed sweat particle rendering over reporter

* Asset bundles accomodation
This commit is contained in:
Rapandrasmus
2023-05-28 20:48:41 +02:00
committed by GitHub
parent 0552d02207
commit 5cbcc39c8b
154 changed files with 11212 additions and 2462 deletions

View File

@ -32,18 +32,36 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("play piano", "Play Note")
{
function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["type"]); },
resizable = true,
parameters = new List<Param>()
function = delegate { BuiltToScaleDS.instance.PlayPiano(eventCaller.currentEntity.beat, eventCaller.currentEntity.length, eventCaller.currentEntity["type"]); },
resizable = true,
parameters = new List<Param>()
{
new Param("type", new EntityTypes.Integer(-24, 24, 0), "Semitones", "The number of semitones up or down this note should be pitched")
},
},
},
new List<string>() {"ntr", "normal"},
"ntrassembly", "en",
new List<string>() {}
);
new GameAction("color", "Color Palette")
{
function = delegate { var e = eventCaller.currentEntity; BuiltToScaleDS.instance.UpdateMappingColors(e["object"], e["shooter"], e["bg"]); },
defaultLength = 0.5f,
parameters = new List<Param>()
{
new Param("object", Color.white, "Object Color"),
new Param("shooter", Color.white, "Shooter Color"),
new Param("bg", new Color(0, 1, 0, 1), "Environment Color")
}
},
new GameAction("lights", "Lights")
{
function = delegate { var e = eventCaller.currentEntity; BuiltToScaleDS.instance.Lights(e.beat, e.length, e["auto"], e["light"] && !e["auto"]); },
defaultLength = 4f,
resizable = true,
parameters = new List<Param>()
{
new Param("auto", true, "Lights (Auto)", "Should the lights auto light?"),
new Param("light", false, "Lights", "Should the lights light?")
}
}
}, new List<string>() { "ntr", "normal" }, "ntrassembly", "en", new List<string>() { });
}
}
}
@ -62,6 +80,7 @@ namespace HeavenStudio.Games
[Header("References")]
[SerializeField] SkinnedMeshRenderer environmentRenderer;
[SerializeField] SkinnedMeshRenderer elevatorRenderer;
public GameObject flyingRodBase;
public GameObject movingBlocksBase;
public GameObject hitPartsBase;
@ -71,27 +90,87 @@ namespace HeavenStudio.Games
public Animator shooterAnim;
public Animator elevatorAnim;
[SerializeField] private Material shooterMaterial;
[SerializeField] private Material objectMaterial;
[SerializeField] private Material gridPlaneMaterial;
private Material elevatorMaterial;
private Material[] gridMaterials;
private Material[] firstPatternLights;
private Material[] secondPatternLights;
[Header("Properties")]
[SerializeField] float beltSpeed = 1f;
private Material beltMaterial;
private Material[] environmentMaterials;
private Material[] elevatorMaterials;
private float currentBeltOffset;
private bool lighting = false;
private bool autoLight = false;
private bool firstLight = true;
[NonSerialized] public bool shootingThisFrame;
[NonSerialized] public bool lastShotOut = false;
private static Color currentObjectColor = Color.white;
private static Color currentShooterColor = Color.white;
private static Color currentEnvironmentColor = new Color(0, 1, 0, 1);
public static BuiltToScaleDS instance;
private GameEvent lightBeat = new GameEvent();
private void Awake()
{
instance = this;
environmentMaterials = environmentRenderer.materials;
elevatorMaterials = elevatorRenderer.materials;
beltMaterial = Instantiate(environmentMaterials[8]);
environmentMaterials[8] = beltMaterial;
elevatorMaterial = Instantiate(elevatorMaterials[3]);
elevatorMaterials[3] = elevatorMaterial;
gridMaterials = new Material[]
{
Instantiate(environmentMaterials[9]),
Instantiate(environmentMaterials[11]),
Instantiate(environmentMaterials[12]),
Instantiate(environmentMaterials[13]),
Instantiate(environmentMaterials[14]),
};
environmentMaterials[9] = gridMaterials[0];
environmentMaterials[11] = gridMaterials[1];
environmentMaterials[12] = gridMaterials[2];
environmentMaterials[13] = gridMaterials[3];
environmentMaterials[14] = gridMaterials[4];
firstPatternLights = new Material[]
{
Instantiate(environmentMaterials[1]),
Instantiate(environmentMaterials[2]),
Instantiate(environmentMaterials[4]),
};
environmentMaterials[1] = firstPatternLights[0];
environmentMaterials[2] = firstPatternLights[1];
environmentMaterials[4] = firstPatternLights[2];
secondPatternLights = new Material[]
{
Instantiate(environmentMaterials[0]),
Instantiate(environmentMaterials[3])
};
environmentMaterials[0] = secondPatternLights[0];
environmentMaterials[3] = secondPatternLights[1];
elevatorAnim.Play("MakeRod", 0, 1f);
UpdateColors();
}
private void OnDestroy()
{
currentObjectColor = Color.white;
currentShooterColor = Color.white;
currentEnvironmentColor = new Color(0, 1, 0, 1);
UpdateColors();
}
private void Start()
@ -101,6 +180,38 @@ namespace HeavenStudio.Games
GameCamera.additionalFoV = cameraFoV;
}
public void UpdateMappingColors(Color objectColor, Color shooterColor, Color environmentColor)
{
currentObjectColor = objectColor;
currentShooterColor = shooterColor;
currentEnvironmentColor = environmentColor;
UpdateColors();
}
private void UpdateColors()
{
objectMaterial.SetColor("_Color", currentObjectColor);
shooterMaterial.SetColor("_Color", currentShooterColor);
beltMaterial.SetColor("_Color", currentEnvironmentColor);
gridPlaneMaterial.SetColor("_Color", currentEnvironmentColor);
elevatorMaterial.SetColor("_Color", currentEnvironmentColor);
foreach (var mat in gridMaterials)
{
mat.SetColor("_Color", currentEnvironmentColor);
}
if (!lighting)
{
foreach (var mat in firstPatternLights)
{
mat.SetColor("_Color", currentEnvironmentColor);
}
foreach (var mat in secondPatternLights)
{
mat.SetColor("_Color", currentEnvironmentColor);
}
}
}
List<DynamicBeatmap.DynamicEntity> spawnedBlockEvents = new List<DynamicBeatmap.DynamicEntity>();
void Update()
{
@ -124,9 +235,15 @@ namespace HeavenStudio.Games
}
}
if (Conductor.instance.ReportBeat(ref lightBeat.lastReportedBeat, lightBeat.startBeat % 1) && autoLight)
{
HandleLights();
}
currentBeltOffset = (currentBeltOffset + Time.deltaTime * -beltSpeed) % 1f;
beltMaterial.mainTextureOffset = new Vector2(0f, currentBeltOffset);
environmentRenderer.materials = environmentMaterials;
elevatorRenderer.materials = elevatorMaterials;
}
void LateUpdate()
@ -157,6 +274,75 @@ namespace HeavenStudio.Games
shootingThisFrame = false;
}
public void Lights(float beat, float length, bool autoLights, bool shouldLights)
{
autoLight = autoLights;
lighting = autoLights || shouldLights;
if (shouldLights)
{
List<BeatAction.Action> actions = new List<BeatAction.Action>();
for (int i = 0; i < length; i++)
{
actions.Add(new BeatAction.Action(beat + i, delegate { HandleLights(); }));
}
if (!autoLights)
{
lighting = false;
actions.Add(new BeatAction.Action(beat + length, delegate
{
foreach (var lightMat in firstPatternLights)
{
lightMat.DOColor(currentEnvironmentColor, 0.2f);
}
foreach (var lightMat in secondPatternLights)
{
lightMat.DOColor(currentEnvironmentColor, 0.2f);
}
}));
}
BeatAction.New(instance.gameObject, actions);
}
if (!autoLights && !shouldLights)
{
lighting = false;
foreach (var lightMat in firstPatternLights)
{
lightMat.DOColor(currentEnvironmentColor, 0.2f);
}
foreach (var lightMat in secondPatternLights)
{
lightMat.DOColor(currentEnvironmentColor, 0.2f);
}
}
}
private void HandleLights()
{
if (firstLight)
{
foreach (var lightMat in firstPatternLights)
{
lightMat.DOColor(Color.white, 0.2f);
}
foreach (var lightMat in secondPatternLights)
{
lightMat.DOColor(currentEnvironmentColor, 0.2f);
}
}
else
{
foreach (var lightMat in firstPatternLights)
{
lightMat.DOColor(currentEnvironmentColor, 0.2f);
}
foreach (var lightMat in secondPatternLights)
{
lightMat.DOColor(Color.white, 0.2f);
}
}
firstLight = !firstLight;
}
public void SpawnBlocks(float beat, float length)
{
var newBlocks = GameObject.Instantiate(movingBlocksBase, blocksHolder).GetComponent<Blocks>();

View File

@ -47,15 +47,6 @@ namespace HeavenStudio.Games.Loaders
new Param("bop", CatchyTune.WhoBops.Both, "Bop", "Should Plalin and Alalin bop?"),
new Param("bopAuto", CatchyTune.WhoBops.None, "Bop", "Should Plalin and Alalin auto bop?"),
},
},
new GameAction("background", "Background")
{
function = delegate {var e = eventCaller.currentEntity; CatchyTune.instance.changeBG(e["BG"]); },
defaultLength = 0.5f,
parameters = new List<Param>()
{
new Param("BG", CatchyTune.Background.Long, "BG", "The background to change to")
},
}
},
new List<string>() {"ctr", "normal"},
@ -104,8 +95,6 @@ namespace HeavenStudio.Games
public GameObject pineappleBase;
public Transform fruitHolder;
public GameObject heartMessage;
public GameObject bg1;
public GameObject bg2;
// when to stop playing the catch animation
@ -320,20 +309,6 @@ namespace HeavenStudio.Games
}
}
public void changeBG(int bg)
{
if (bg == 0)
{
bg1.SetActive(true);
bg2.SetActive(false);
}
else
{
bg1.SetActive(false);
bg2.SetActive(true);
}
}
public void catchSuccess(bool side, bool isPineapple, bool smile, float beat, float endSmile)
{
string anim = isPineapple ? "catchPineapple" : "catchOrange";

View File

@ -88,9 +88,7 @@ namespace HeavenStudio.Games
private int clapIndex;
private ClappyTrioPlayer ClappyTrioPlayer;
public bool playerHitLast = false;
public bool missed;
public int misses;
bool shouldBop;
bool doEmotion = true;
public int emoCounter;
@ -186,7 +184,6 @@ namespace HeavenStudio.Games
ClappyTrioPlayer.clapStarted = true;
ClappyTrioPlayer.canHit = true; // this is technically a lie, this just restores the ability to hit
playerHitLast = false;
isClapping = true;
// makes the other lions clap
@ -221,15 +218,18 @@ namespace HeavenStudio.Games
shouldBop = autoBop;
if (startBop)
{
List<BeatAction.Action> bops = new List<BeatAction.Action>();
for (int i = 0; i < length; i++)
{
if (i == 0 && startBop && autoBop) continue;
float spawnBeat = beat + i;
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
bops.Add(new BeatAction.Action(spawnBeat, delegate { Bop(spawnBeat); }));
if (i == length - 1)
{
new BeatAction.Action(spawnBeat, delegate { Bop(spawnBeat); })
});
bops.Add(new BeatAction.Action(spawnBeat, delegate { misses = 0; }));
}
}
if (bops.Count > 0) BeatAction.New(instance.gameObject, bops);
}
}
@ -237,14 +237,14 @@ namespace HeavenStudio.Games
{
if (doEmotion && emoCounter > 0)
{
if (playerHitLast)
if (misses == 0)
{
for (int i = 0; i < Lion.Count; i++)
{
SetFace(i, 1);
}
}
else if (missed)
else if (misses > 0)
{
var a = EventCaller.GetAllInGameManagerList("clappyTrio", new string[] { "clap" });
var b = a.FindAll(c => c.beat < beat);

View File

@ -54,8 +54,7 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
}
private void Miss(PlayerActionEvent caller) {
game.playerHitLast = false;
game.missed = true;
game.misses++;
game.emoCounter = 2;
if (clapStarted)
@ -71,16 +70,12 @@ namespace HeavenStudio.Games.Scripts_ClappyTrio
{
clapEffect.SetActive(true);
Jukebox.PlayOneShotGame("clappyTrio/rightClap");
if (this.canHit)
game.playerHitLast = true;
}
else
{
clapEffect.SetActive(false);
Jukebox.PlayOneShot("miss");
game.playerHitLast = false;
game.missed = true;
game.misses++;
if (clapStarted)
this.canHit = false;

View File

@ -525,7 +525,6 @@ namespace HeavenStudio.Games
}
if (pressCount == countToMatch)
{
GameProfiler.instance.IncreaseScore();
Jukebox.PlayOneShotGame("quizShow/correct");
contesteeHead.Play("ContesteeSmile", -1, 0);
hostHead.Play("HostSmile", -1, 0);

View File

@ -150,6 +150,7 @@ namespace HeavenStudio.Games
private Sound kidsLaugh;
private int currentPose;
private EasingFunction.Ease lastEase;
private GameObject currentNewspaper;
private int currentZoomIndex;
@ -186,8 +187,8 @@ namespace HeavenStudio.Games
allCameraEvents = tempEvents;
UpdateCameraZoom();
shouldNotInput = false;
shouldBop = true;
wrestlerAnim.Play("Idle", 0, 1);
ReporterBlink();
}
void Update()
@ -198,7 +199,7 @@ namespace HeavenStudio.Games
{
if (cond.ReportBeat(ref bop.lastReportedBeat, bop.startBeat % 1))
{
if ((wrestlerAnim.IsPlayingAnimationName("Idle") || wrestlerAnim.IsPlayingAnimationName("BopPec") || wrestlerAnim.IsPlayingAnimationName("Bop")) && shouldBop)
if (wrestlerAnim.IsAnimationNotPlaying() && shouldBop)
{
if (UnityEngine.Random.Range(1, 18) == 1)
{
@ -233,7 +234,6 @@ namespace HeavenStudio.Games
new BeatAction.Action(cond.songPositionInBeats + 0.1f, delegate { wrestlerTransform.localScale = new Vector3(1f, 1f, 1f); }),
});
}
ReporterBlink();
}
if (allCameraEvents.Count > 0)
{
@ -299,7 +299,7 @@ namespace HeavenStudio.Games
{
new BeatAction.Action(beat + i, delegate
{
if ((wrestlerAnim.IsPlayingAnimationName("Idle") || wrestlerAnim.IsPlayingAnimationName("BopPec") || wrestlerAnim.IsPlayingAnimationName("Bop")))
if (wrestlerAnim.IsAnimationNotPlaying())
{
if (UnityEngine.Random.Range(1, 18) == 1)
{
@ -460,8 +460,8 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat, delegate {wrestlerAnim.DoScaledAnimationAsync("PreparePose", 0.25f); }),
new BeatAction.Action(beat, delegate {shouldBop = false; }),
new BeatAction.Action(beat + 1, delegate { PoseCheck(beat); }),
new BeatAction.Action(beat + 3.99f, delegate { wrestlerAnim.Play("Idle", 0, 0); }),
new BeatAction.Action(beat + 3.99f, delegate { reporterAnim.Play("IdleReporter", 0, 0); }),
new BeatAction.Action(beat + 3.99f, delegate { wrestlerAnim.Play("Idle", 0, 1); }),
new BeatAction.Action(beat + 3.99f, delegate { reporterAnim.DoUnscaledAnimation("IdleReporter"); }),
new BeatAction.Action(beat + 3.99f, delegate { shouldNotInput = false; }),
new BeatAction.Action(beat + 3.99f, delegate { shouldBop = true; }),
});
@ -475,14 +475,18 @@ namespace HeavenStudio.Games
{
keepZoomOut = true;
blackVoid.color = Color.black;
newspaper.SetActive(true);
GameObject spawnedNewsPaper = Instantiate(newspaper, transform);
spawnedNewsPaper.SetActive(true);
currentNewspaper = spawnedNewsPaper;
wrestlerNewspaperAnim = spawnedNewsPaper.transform.GetChild(1).GetComponent<Animator>();
reporterNewspaperAnim = spawnedNewsPaper.transform.GetChild(2).GetComponent<Animator>();
if (UnityEngine.Random.Range(1, 3) == 1)
{
newspaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
}
else
{
newspaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
}
if (!hitPose)
{
@ -500,7 +504,7 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + 3f + newspaperBeats, delegate
{
blackVoid.color = new Color(1f, 1f, 1f, 0);
newspaper.SetActive(false);
Destroy(currentNewspaper); currentNewspaper = null;
lastCamPos = new Vector3(0, 0, -10);
Jukebox.KillLoop(kidsLaugh, 0.25f);
keepZoomOut = false;
@ -537,14 +541,18 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + 3f, delegate
{
blackVoid.color = Color.black;
newspaper.SetActive(true);
GameObject spawnedNewsPaper = Instantiate(newspaper, transform);
spawnedNewsPaper.SetActive(true);
currentNewspaper = spawnedNewsPaper;
wrestlerNewspaperAnim = spawnedNewsPaper.transform.GetChild(1).GetComponent<Animator>();
reporterNewspaperAnim = spawnedNewsPaper.transform.GetChild(2).GetComponent<Animator>();
if (UnityEngine.Random.Range(1, 3) == 1)
{
newspaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnter", 0, 0);
}
else
{
newspaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
spawnedNewsPaper.GetComponent<Animator>().Play("NewspaperEnterRight", 0, 0);
}
if (!hitPose)
{
@ -562,7 +570,7 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + 3f + newspaperBeats, delegate
{
blackVoid.color = new Color(1f, 1f, 1f, 0);
newspaper.SetActive(false);
Destroy(currentNewspaper); currentNewspaper = null;
Jukebox.KillLoop(kidsLaugh, 0.25f);
})
});
@ -633,14 +641,12 @@ namespace HeavenStudio.Games
public void ReporterBlink()
{
int randomNumber = UnityEngine.Random.Range(1, 200);
if (randomNumber == 1)
if (reporterAnim.GetCurrentAnimatorStateInfo(0).IsName("IdleReporter"))
{
if (reporterAnim.IsPlayingAnimationName("IdleReporter"))
{
reporterAnim.DoScaledAnimationAsync("BlinkReporter", 0.5f);
}
reporterAnim.DoUnscaledAnimation("BlinkReporter");
}
float randomTime = UnityEngine.Random.Range(0.3f, 1.8f);
Invoke("ReporterBlink", randomTime);
}
public void JustQuestion(PlayerActionEvent caller, float state)
@ -721,7 +727,24 @@ namespace HeavenStudio.Games
}
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(caller.startBeat + caller.timer + 0.9f, delegate { wrestlerAnim.Play("Idle", 0, 0); }),
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate
{
if (shouldBop)
{
if (UnityEngine.Random.Range(1, 18) == 1)
{
wrestlerAnim.DoScaledAnimationAsync("BopPec");
}
else
{
wrestlerAnim.DoScaledAnimationAsync("Bop");
}
}
else
{
wrestlerAnim.Play("Idle", 0, 1);
}
}),
});
return;
}
@ -756,7 +779,24 @@ namespace HeavenStudio.Games
}
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(caller.startBeat + caller.timer + 0.9f, delegate { wrestlerAnim.Play("Idle", 0, 0); }),
new BeatAction.Action(caller.startBeat + caller.timer + 1f, delegate
{
if (shouldBop)
{
if (UnityEngine.Random.Range(1, 18) == 1)
{
wrestlerAnim.DoScaledAnimationAsync("BopPec");
}
else
{
wrestlerAnim.DoScaledAnimationAsync("Bop");
}
}
else
{
wrestlerAnim.Play("Idle", 0, 1);
}
}),
});
}

View File

@ -8,6 +8,7 @@ namespace HeavenStudio.Games.Scripts_Spaceball
private float showBeat = 0;
private bool isShowing = false;
private bool isHiding = false;
const string IdleAnim = "AlienIdle";
const string SwingAnim = "AlienSwing";
@ -21,12 +22,12 @@ namespace HeavenStudio.Games.Scripts_Spaceball
private void Update()
{
if (Conductor.instance.isPlaying && !isShowing)
if (Conductor.instance.isPlaying && !isShowing && !isHiding)
{
anim.Play(SwingAnim, 0, Conductor.instance.GetLoopPositionFromBeat(0, 1f));
anim.speed = 0;
}
else if (!Conductor.instance.isPlaying)
else if (!Conductor.instance.isPlaying && !isHiding)
{
anim.Play(IdleAnim, 0, 0);
}
@ -34,7 +35,7 @@ namespace HeavenStudio.Games.Scripts_Spaceball
if (isShowing)
{
float normalizedBeat = Conductor.instance.GetPositionFromBeat(showBeat, 1f);
anim.Play(ShowAnim, 0, normalizedBeat);
if (!isHiding) anim.Play(ShowAnim, 0, normalizedBeat);
anim.speed = 0;
if (normalizedBeat >= 2)
@ -44,10 +45,12 @@ namespace HeavenStudio.Games.Scripts_Spaceball
}
}
public void Show(float showBeat)
public void Show(float showBeat, bool hide)
{
isShowing = true;
this.showBeat = showBeat;
isHiding = hide;
if (hide) anim.Play("AlienHide", 0, 0);
}
}
}

View File

@ -44,7 +44,11 @@ namespace HeavenStudio.Games.Loaders
},
new GameAction("alien", "Show Alien")
{
function = delegate { Spaceball.instance.alien.Show(eventCaller.currentEntity.beat); }
function = delegate { Spaceball.instance.alien.Show(eventCaller.currentEntity.beat, eventCaller.currentEntity["hide"]); },
parameters = new List<Param>()
{
new Param("hide", false, "Hide", "Should the alien be hidden?")
}
},
new GameAction("camera", "Zoom Camera")
{

View File

@ -842,22 +842,22 @@ namespace HeavenStudio.Games
switch (last + current)
{
case "redBlue":
currentBall.SetState(TossBoysBall.State.RedBlueDual, beat);
currentBall.SetState(TossBoysBall.State.RedBlueDual, beat, currentEventLength / 2);
break;
case "blueYellow":
currentBall.SetState(TossBoysBall.State.BlueYellowDual, beat);
currentBall.SetState(TossBoysBall.State.BlueYellowDual, beat, currentEventLength / 2);
break;
case "yellowBlue":
currentBall.SetState(TossBoysBall.State.YellowBlueDual, beat);
currentBall.SetState(TossBoysBall.State.YellowBlueDual, beat, currentEventLength / 2);
break;
case "blueRed":
currentBall.SetState(TossBoysBall.State.BlueRedDual, beat);
currentBall.SetState(TossBoysBall.State.BlueRedDual, beat, currentEventLength / 2);
break;
case "yellowRed":
currentBall.SetState(TossBoysBall.State.YellowRedDual, beat);
currentBall.SetState(TossBoysBall.State.YellowRedDual, beat, currentEventLength / 2);
break;
case "redYellow":
currentBall.SetState(TossBoysBall.State.RedYellowDual, beat);
currentBall.SetState(TossBoysBall.State.RedYellowDual, beat, currentEventLength / 2);
break;
default:
break;

View File

@ -51,7 +51,7 @@ namespace HeavenStudio.Games
public GameObject fxBase;
private int timer = 0;
public float beatInterval = 4f;
public float beatInterval = 6f;
float intervalStartBeat;
bool intervalStarted;
public float wizardBeatOffset = 0f;