Пример #1
0
        public override void Kill()
        {
            Status.RemoveLife();
            Status.ResetBomb();
            Status.RemovePower();

            fadeTimer = 120;

            float hue1   = rand.NextFloat(2.8f, 3f);
            float hue2   = (hue1 + rand.NextFloat(0, 1));
            Color color1 = ColorUtility.HSVToColor(hue1, 1f, 1);
            Color color2 = ColorUtility.HSVToColor(hue2, 0.8f, 1);

            for (int i = 0; i < 300; i++)
            {
                float speed = 15f * (1f - 1 / rand.NextFloat(0.4f, 1.1f));
                var   state = new Particle.State()
                {
                    Velocity         = rand.NextVector2(speed, speed),
                    LengthMultiplier = 0.8f
                };

                Color color = Color.Lerp(color2, color1, rand.NextFloat(0, 1));
                Main.ParticleManager.CreateParticle(Content.Sprite.LineParticle, Position, color, 150, rand.NextFloat(0.4f, 2f), state);
            }

            invincibilityTimer = 300;
        }
Пример #2
0
        public SpellCharge(Vector2 setPosition, Particle.State state) : base(setPosition)
        {
            particleCount    = 0;
            enableCriate     = 60;
            particleInterval = 30;

            particleRadius = 200f;

            pState = state;
        }
Пример #3
0
        public override void Update()
        {
            if (!IsDead && !Status.IsGameOver)
            {
                Input.PlayerInput.Update();
                Position = Vector2.Clamp(Position, screenBorder1 + Size, screenBorder2 - Size);
                invincibilityTimer--;
            }
            else
            {
                if (Status.IsGameOver)
                {
                    Position = new Vector2(-1000, -1000);
                    instance = null;
                }
                else
                {
                    Position = new Vector2(Main.ScreenSize.X / 2, Main.ScreenSize.Y - 60 + fadeTimer);
                    fadeTimer--;
                    return;
                }
            }

            if (invincibilityTimer == 10)
            {
                for (int i = 0; i < 200; i++)
                {
                    float speed = 14f * (1f - 1 / rand.NextFloat(0.5f, 1f));
                    var   state = new Particle.State()
                    {
                        Velocity         = rand.NextVector2(speed, speed),
                        LengthMultiplier = 0.5f
                    };

                    Main.ParticleManager.CreateParticle(Content.Sprite.CircleParticle, Position, Color.Gray, 100, rand.NextFloat(0.4f, 1f), state);
                }
            }

            if (!IsInvincible)
            {
                Input.PlayerInput.SetCooldown(4);
            }
            else
            {
                Input.PlayerInput.SetCooldown(1);
            }
        }
Пример #4
0
        public void Bomb()
        {
            Status.RemoveBomb();
            invincibilityTimer = 300;

            for (int i = 0; i < 100; i++)
            {
                float speed = 14f * (1f - 1 / rand.NextFloat(0.5f, 1f));
                var   state = new Particle.State()
                {
                    Velocity         = rand.NextVector2(speed, speed),
                    LengthMultiplier = 0.5f
                };

                Main.ParticleManager.CreateParticle(Content.Sprite.CircleParticle, Position, Color.White, 150, rand.NextFloat(0.4f, 1f), state);
            }
        }