public EnemyItemCollisionResponse(IEnemy e, IItems i, List <IItems> items, CollisionSide c, Game1 g)
        {
            Rectangle intersection = Rectangle.Intersect(e.Position, i.Position);

            switch (c)
            {
            case CollisionSide.Top:
                e.BounceY(-intersection.Height);
                if (!e.IsKilled)
                {
                    e.Land();
                }

                if (!(i is FlagPoleItem || i is PipeItem || i is RockBlockItem || i is ShadedBlockItem || i is UsedBlockItem))
                {
                    i.HasEnemyOnIt = true;
                }
                if (g.Character.CurrentState.IsBig && i.HasEnemyOnIt && i.isBouncing && i is BrickBlockItem)
                {
                    e.KilledRight();
                    if (e.Collision == 1)
                    {
                        g.Character.ProjectileSmash();
                    }
                    Vector2 ExplodingPiece1Position = new Vector2(i.Location.X, i.Location.Y);
                    Vector2 ExplodingPiece2Position = new Vector2(i.Location.X + i.Texture.Width, i.Location.Y);
                    Vector2 ExplodingPiece3Position = new Vector2(i.Location.X, i.Location.Y + i.Texture.Height);
                    Vector2 ExplodingPiece4Position = new Vector2(i.Location.X + i.Position.Width, i.Location.Y + i.Texture.Height);
                    items.Remove(i);
                    i = ItemFactory.Instance.CreateBrickBlockPiecesExplodingHighLeft(ExplodingPiece1Position);
                    items.Add(i);
                    i = ItemFactory.Instance.CreateBrickBlockPiecesExplodingHighRight(ExplodingPiece2Position);
                    items.Add(i);
                    i = ItemFactory.Instance.CreateBrickBlockPiecesExplodingLowLeft(ExplodingPiece3Position);
                    items.Add(i);
                    i = ItemFactory.Instance.CreateBrickBlockPiecesExplodingLowRight(ExplodingPiece4Position);
                    items.Add(i);
                    SoundEffectFactory.Instance.CreateBrickBreakSound().PlaySound();
                }
                else if (i.isBouncing && i.HasEnemyOnIt)      //(i.isBouncing && !g.Character.CurrentState.IsBig)
                {
                    e.KilledRight();
                    if (e.Collision == 1)
                    {
                        g.Character.ProjectileSmash();
                    }
                }
                break;

            case CollisionSide.Left:
                e.BounceX(intersection.Width);
                e.Turn();
                break;

            case CollisionSide.Right:
                e.BounceX(-intersection.Width);
                e.Turn();
                break;

            case CollisionSide.None:
                e.Fall();
                break;
            }
        }