private void BoostFeedback(string boostedString)
    {
        GameObject boost = ObjectPooler.Instance.SpawnObject(_boostParticleTag, null, transform.position, transform.rotation);

        LeanTween.delayedCall(0.5f, () => { ObjectPooler.Instance.ReturnToPool(_boostParticleTag, boost); });
        ParticleBase particles = boost.GetComponent <ParticleBase>();

        switch (boostedString)
        {
        case "HP":
            particles.ChangeColor(_boostHPColor);
            break;

        case "Act":
            particles.ChangeColor(_boostActColor);
            break;

        case "Def":
            particles.ChangeColor(_boostDefColor);
            break;

        default:
            break;
        }
        particles.PlayComponents();
    }
Beispiel #2
0
 protected virtual void Init()
 {
     particleCounts    = new[] { 0, 1, 0, 0 };
     activeCountBuffer = new ComputeBuffer(4, Marshal.SizeOf(typeof(int)), ComputeBufferType.IndirectArguments);
     activeCountBuffer.SetData(particleCounts);
     particleComputer = GetComponent <ParticleBase>();
 }
        public ParticleBase[] Generate(SKPoint[] startPositions, int amount = 25, SKColor[] colors = null)
        {
            var particles = new ParticleBase[amount];

            for (int i = 0; i < amount; i++)
            {
                particles[i] = _randomParticleGenerator.GetRandomParticle(startPositions,
                                                                          new[]
                {
                    new DirectionRange(45, 135)
                }, amount, _rand, i, colors ?? RandomParticleGenerator.DefaultColors);
            }

            return(particles);
        }
Beispiel #4
0
        public ParticleBase[] Generate(SKPoint[] startPositions, int amount = 25, SKColor[] colors = null)
        {
            var particles     = new ParticleBase[amount];
            var startPosition = startPositions[_rand.Next(startPositions.Length)];

            for (int i = 0; i < amount; i++)
            {
                var newDouble = _rand.NextDouble();
                particles[i] = (newDouble) switch
                {
                    _ when newDouble > 0.66d => new MicrosoftLogoParticle(
                        new SKPoint3(
                            (float)(_rand.NextDouble() * 360.0f * 1.2),
                            (float)(_rand.NextDouble() * 360.0f * 1.2),
                            (float)(_rand.NextDouble() * 360.0f * 1.2)
                            ),
                        (float)(100.0f + _rand.NextDouble() * 200),
                        (float)(45.0f + _rand.NextDouble() * 90.0f),
                        new SKPoint3(
                            (float)(_rand.NextDouble() * 360.0f),
                            (float)(_rand.NextDouble() * 360.0f),
                            (float)(_rand.NextDouble() * 360.0f)
                            ),
                        startPosition
                        ,
                        new SKSize(
                            (float)(4 + _rand.NextDouble() * 5),
                            (float)(4 + _rand.NextDouble() * 5)
                            )
                        ),
                    _ when newDouble > 0.33d => new GitHubLogoParticle(
                        new SKPoint3(
                            (float)(_rand.NextDouble() * 360.0f * 1.2),
                            (float)(_rand.NextDouble() * 360.0f * 1.2),
                            (float)(_rand.NextDouble() * 360.0f * 1.2)
                            ),
                        (float)(100.0f + _rand.NextDouble() * 200),
                        (float)(45.0f + _rand.NextDouble() * 90.0f),
                        new SKPoint3(
                            (float)(_rand.NextDouble() * 360.0f),
                            (float)(_rand.NextDouble() * 360.0f),
                            (float)(_rand.NextDouble() * 360.0f)
                            ),
                        startPosition
                        ,
                        new SKSize(
                            (float)(4 + _rand.NextDouble() * 5),
                            (float)(4 + _rand.NextDouble() * 5)
                            )
                        ),
                    _ => new GoogleLogoParticle(
                        new SKPoint3(
                            (float)(_rand.NextDouble() * 360.0f * 1.2),
                            (float)(_rand.NextDouble() * 360.0f * 1.2),
                            (float)(_rand.NextDouble() * 360.0f * 1.2)
                            ),
                        (float)(100.0f + _rand.NextDouble() * 200),
                        (float)(45.0f + _rand.NextDouble() * 90.0f),
                        new SKPoint3(
                            (float)(_rand.NextDouble() * 360.0f),
                            (float)(_rand.NextDouble() * 360.0f),
                            (float)(_rand.NextDouble() * 360.0f)
                            ),
                        startPosition
                        ,
                        new SKSize(
                            (float)(4 + _rand.NextDouble() * 5),
                            (float)(4 + _rand.NextDouble() * 5)
                            )
                        )
                };
            }
            ;

            return(particles);
        }
    }