public override List <ProjectileEntity> Shoot()
        {
            List <ProjectileEntity> projList = new();

            if (CheckCanShoot())
            {
                ShootCooldown();
                Point            location   = new(SpriteRectangle.Left - 20, SpriteRectangle.Top + (SpriteRectangle.Height / 2) - (ProjectileHeight / 2));
                ProjectileEntity projectile = new(GameRectangle, new Rectangle(location, new Size(ProjectileWidth, ProjectileHeight)), Resources.enemyProjectile)
                {
                    MoveLeft   = true,
                    BaseSpeed  = BaseSpeed * SpeedMulti,
                    SpeedMulti = 1.3,
                    Team       = Team,
                    Damage     = Damage
                };
                projList.Add(projectile);
                if (TripleShot)
                {
                    ProjectileEntity proj = (ProjectileEntity)projectile.Clone();
                    proj.MoveUp     = true;
                    proj.SpeedMulti = 1.1;
                    projList.Add(proj);
                    proj            = (ProjectileEntity)projectile.Clone();
                    proj.MoveDown   = true;
                    proj.SpeedMulti = 1.1;
                    projList.Add(proj);
                }
            }
            return(projList);
        }
        public override List <ProjectileEntity> Shoot()
        {
            List <ProjectileEntity> projList = new();

            if (CheckCanShoot())
            {
                ShootCooldown();
                int x      = SpriteRectangle.Right + 20;
                int y      = SpriteRectangle.Top + (SpriteRectangle.Height / 2) - (ProjectileHeight / 2);
                var sprite = ShootBuffLevel >= 4 ? Resources.allyProjectileSuper : Resources.allyProjectile;
                var multi  = ShootBuffLevel >= 4 ? 3.0 : 2.0;

                ProjectileEntity projectile = new(GameRectangle, new Rectangle(new Point(x, y + (ShootBuffLevel == 1 ? (ProjectileHeight / 2) : 0)), new Size(ProjectileWidth, ProjectileHeight)), sprite)
                {
                    MoveRight  = true,
                    BaseSpeed  = BaseSpeed,
                    SpeedMulti = multi,
                    Team       = Team,
                    Damage     = Damage
                };
                projList.Add(projectile);

                if (ShootBuffLevel >= 1)
                {
                    ProjectileEntity proj = (ProjectileEntity)projectile.Clone();
                    proj.SpriteRectangle = new Rectangle(new Point(projectile.SpriteRectangle.X, projectile.SpriteRectangle.Y - ProjectileHeight), projectile.SpriteRectangle.Size);
                    projList.Add(proj);
                }
                if (ShootBuffLevel >= 2)
                {
                    ProjectileEntity proj = (ProjectileEntity)projectile.Clone();
                    proj.SpriteRectangle = new Rectangle(new Point(projectile.SpriteRectangle.X, projectile.SpriteRectangle.Y + ProjectileHeight), projectile.SpriteRectangle.Size);
                    projList.Add(proj);
                }
                if (ShootBuffLevel >= 3)
                {
                    ProjectileEntity proj = (ProjectileEntity)projectile.Clone();
                    proj.MoveUp = true;
                    projList.Add(proj);
                    proj          = (ProjectileEntity)projectile.Clone();
                    proj.MoveDown = true;
                    projList.Add(proj);
                }
            }
            return(projList);
        }