Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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),
                }
            });
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
        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());
        }
Exemplo n.º 8
0
        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());
        }
Exemplo n.º 9
0
 public abstract EvtNextBeatKeyAdded[] GenerateTargetsForBeat(BeatInfo info, float timePerBeat,
                                                              KeyInfoComponent _keyInfoComponent);