public bool? PinDian(Player from, Player to, ISkill skill)
{
Card card1, card2;
bool c1, c2;
var ret = PinDianReturnCards(from, to, out card1, out card2, skill, out c1, out c2);
EnterAtomicContext();
card1.Log.Source = from;
card2.Log.Source = to;
if (!c1) PlaceIntoDiscard(from, new List<Card>() { card1 });
if (!c2) PlaceIntoDiscard(to, new List<Card>() { card2 });
ExitAtomicContext();
return ret;
}