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]); } } } }