private void CheckSiblings(CCNode currentTarget, List <int> currentSiblings)
        {
            var parent = currentTarget.Parent;
            var card   = currentTarget.Children[0].UserObject as CardBase;

            foreach (var i in currentSiblings)
            {
                if (i == -1)
                {
                    continue;
                }

                var sibling = parent.GetChildByTag(i);

                if (sibling.ChildrenCount == 1)
                {
                    var siblingCardSprite = sibling.Children[0] as CCSprite;
                    var siblingCard       = siblingCardSprite.UserObject as CardBase;

                    if (card.GetType() == siblingCard.GetType())
                    {
                        continue;
                    }

                    if (CardBase.Compare(card, siblingCard, currentSiblings.IndexOf(i)))
                    {
                        var action = new CCOrbitCamera(1, 1, 0, 0, 360, 0, 0);
                        siblingCardSprite.RunAction(action);
                        var         nSiblingCard = siblingCard.ChangeTeam();
                        CCTexture2D tex          = CCTextureCache.SharedTextureCache.AddImage(nSiblingCard.ImageName);
                        siblingCardSprite.Texture    = tex;
                        siblingCardSprite.UserObject = nSiblingCard;
                        CheckSiblings(sibling, _siblings[sibling.Tag]);
                    }
                }
            }
        }