예제 #1
0
        private void AddFireWorks(Vector2 point, Color color, float size)
        {
            Game.AddFireWorks(point, color, size);

            var f  = new RushFireWork(point, color, size);
            var s  = f.Compare(CurrentFireWork);
            var ms = MiniScore.GetMiniScoreFor(s);
            int sc = MiniScore.GetScoreFor(ms);

            ScoreParticles.Add(new MiniScore
            {
                Score    = ms,
                Location = point,
                Fade     = new Tween(new TimeSpan(0, 0, 0, 1), 1, 0)
            });
            if (sc == MiniScore.GetScoreFor(MiniScores.PERFECT))
            {
                Multiplier++;
                if (Multiplier > 3)
                {
                    Multiplier = 3;
                }
                MultiplierTween.Reset();
            }
            Score += sc * (Multiplier + 1);

            var pTime = new TimeSpan(MiniScore.GetTimeFor(MiniScore.GetMiniScoreFor(s)).Ticks *(Multiplier + 1));

            if (pTime > TimeSpan.Zero)
            {
                TimeParticles.Add(new TimeParticle
                {
                    Time     = float.Parse(pTime.Seconds + ((pTime.Milliseconds > 0)?"." + pTime.Milliseconds:"")),
                    Location = point,
                    Fade     = new Tween(new TimeSpan(0, 0, 0, 6), 1, 0)
                });
            }
            TTL += pTime;
            if (TTL > CurrentTTL)
            {
                if (TTL > MaxTTL)
                {
                    TTL        = MaxTTL;
                    CurrentTTL = TTL;
                }
                else
                {
                    CurrentTTL = TTL;
                }
            }
            RSG = PlayState.ADD;
        }
예제 #2
0
        private void AddFireWorks(Vector2 point, Color color, float size)
        {
            if (CurrentMap.Events.Count <= RecordEvents.Count)
            {
                return;
            }
            Game.AddFireWorks(point, color, size);
            var f = new FireWork(point, color, size, CurrentMap.Complete);
            var s = f.Compare(CurrentMap.Events[RecordEvents.Count]);

            ScoreParticles.Add(new MiniScore
            {
                Score    = MiniScore.GetMiniScoreFor(s),
                Location = point,
                Fade     = new Tween(new TimeSpan(0, 0, 0, 1), 1, 0)
            });

            RecordEvents.Add(f);

            Score += MiniScore.GetScoreFor(MiniScore.GetMiniScoreFor(s));
        }