private List <EvtNextBeatKeyAdded> GenerateRandomFast(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { var initialKeyCount = Random.Range(4, 6); var list = new List <EvtNextBeatKeyAdded>(); for (var i = 0; i < initialKeyCount; i++) { list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 5000 + i, Key = _keyInfoComponent.RelevantKeys.RandomElement(), BeatNo = info.BeatNo + BeatDistance + i, PlannedBeatTime = info.BeatTime + ((BeatDistance + i * 0.5f) * timePerBeat) }); } return(list); }
private List <EvtNextBeatKeyAdded> OneKeyTriggerBeat(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { var initialKeyCount = new [] { 0f, 1f, 1.5f, 2.5f, 3.5f, 4f }; var list = new List <EvtNextBeatKeyAdded>(); var key = _keyInfoComponent.RelevantKeys.RandomElement(); var key2 = _keyInfoComponent.RelevantKeys.RandomElement(); for (var i = 0; i < initialKeyCount.Length; i++) { list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 8000 + i, Key = Random.value < 0.1 ? key2 : key, BeatNo = info.BeatNo + BeatDistance + i, PlannedBeatTime = info.BeatTime + ((BeatDistance + initialKeyCount[i]) * timePerBeat) }); } return(list); }
private List <EvtNextBeatKeyAdded> GenerateFastRandom2(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { var initialKeyCount = Random.Range(7, 9); var list = new List <EvtNextBeatKeyAdded>(); string[] keys = _keyInfoComponent.RelevantKeys.Take(3) .Concat(_keyInfoComponent.RelevantKeys.Skip(6).Take(3)) .ToArray(); for (var i = 0; i < initialKeyCount; i++) { list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 5000 + i, Key = keys.RandomElement(), BeatNo = info.BeatNo + BeatDistance + i, PlannedBeatTime = info.BeatTime + ((BeatDistance + i * 0.5f) * timePerBeat) }); } return(list); }
private List <EvtNextBeatKeyAdded> GenerateSecond(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { var initialKeyCount = Random.Range(3, 6); var list = new List <EvtNextBeatKeyAdded>(); var startKey = Random.Range(0, _keyInfoComponent.RelevantKeys.Length); for (var i = 0; i < initialKeyCount; i++) { var key = (startKey + i) % _keyInfoComponent.RelevantKeys.Length; key = _keyInfoComponent.RelevantKeys.Length - key - 1; var delay = (BeatDistance + i); list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 5000 + i, Key = _keyInfoComponent.RelevantKeys[key], BeatNo = info.BeatNo + BeatDistance + i, PlannedBeatTime = info.BeatTime + (delay * timePerBeat) }); } return(list); }
public override EvtNextBeatKeyAdded[] GenerateTargetsForBeat(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { if (_lastBeatNumberGenerated + _minDistanceBetweenBeets > info.BeatNo) { return(new EvtNextBeatKeyAdded[0]); } var generatorVal = (int)(Random.value * 2f); if (generatorVal != 0) { return(new EvtNextBeatKeyAdded[0]); } _lastBeatNumberGenerated = info.BeatNo; var key = _keyInfoComponent.RelevantKeys[(int)(Random.value * _keyInfoComponent.RelevantKeys.Length)]; return(new[] { new EvtNextBeatKeyAdded { Id = Time.frameCount, Key = key, BeatNo = info.BeatNo + BeatDistance, PlannedBeatTime = info.BeatTime + (timePerBeat * BeatDistance), } }); }
public override EvtNextBeatKeyAdded[] GenerateTargetsForBeat(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { if (_lastBeatNumberGenerated + _minDistanceBetweenBeets > info.BeatNo) { return(new EvtNextBeatKeyAdded[0]); } var generatorVal = (int)(Random.value * 4f); if (generatorVal >= 3) { return(new EvtNextBeatKeyAdded[0]); } _lastBeatNumberGenerated = info.BeatNo; var key = _keyInfoComponent.RelevantKeys[(int)(Random.value * _keyInfoComponent.RelevantKeys.Length)]; var list = new List <EvtNextBeatKeyAdded> { new EvtNextBeatKeyAdded { Id = Time.frameCount + 500000, Key = key, BeatNo = info.BeatNo + BeatDistance, PlannedBeatTime = info.BeatTime + (timePerBeat * BeatDistance) } }; if (!(Random.value < 0.1f)) { return(list.ToArray()); } list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 500001, Key = key, BeatNo = info.BeatNo + BeatDistance + 1, PlannedBeatTime = info.BeatTime + (timePerBeat * (BeatDistance + 1f)) }); return(list.ToArray()); }
public override EvtNextBeatKeyAdded[] GenerateTargetsForBeat(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { if (info.BeatNo % 4 != 0) { return(new EvtNextBeatKeyAdded[0]); } if (Random.value < 0.1) { return(new EvtNextBeatKeyAdded[0]); // pause } var keyCount = Random.Range(2, 5); var list = new List <EvtNextBeatKeyAdded>(); for (var i = 0; i < keyCount; i++) { list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 5000 + i, Key = _keyInfoComponent.RelevantKeys.RandomElement(), BeatNo = info.BeatNo + BeatDistance + i, PlannedBeatTime = info.BeatTime + (timePerBeat * (BeatDistance + i)) }); } var additionalBeatRnd = Random.value; if (additionalBeatRnd < 0.03) { var element = list.RandomElement(); list.Add(new EvtNextBeatKeyAdded { Id = Time.frameCount + 60000, Key = element.Key, BeatNo = element.BeatNo, PlannedBeatTime = element.PlannedBeatTime + (timePerBeat * 0.5f), }); } return(list.ToArray()); }
public override EvtNextBeatKeyAdded[] GenerateTargetsForBeat(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent) { if (info.BeatNo % 6 != 0) { return(new EvtNextBeatKeyAdded[0]); } if (Random.value < 0.1) { return(new EvtNextBeatKeyAdded[0]); // pause } var list = new List <EvtNextBeatKeyAdded>(); var generation = Random.Range(0, 4); switch (generation) { case 0: list = GenerateRandomKeys(info, timePerBeat, _keyInfoComponent); break; case 1: list = GenerateRandomFast(info, timePerBeat, _keyInfoComponent); break; case 2: list = GenerateFirst(info, timePerBeat, _keyInfoComponent); break; case 3: list = GenerateSecond(info, timePerBeat, _keyInfoComponent); break; } return(list.ToArray()); }
public abstract EvtNextBeatKeyAdded[] GenerateTargetsForBeat(BeatInfo info, float timePerBeat, KeyInfoComponent _keyInfoComponent);