public ChainAppendPendingAction(ILoadableDictionary<IPlayer, IPendingAction> playerPendingActions,
     IPlayer player,
     IInPlayChain inPlayChain)
 {
     this.InPlayChain = inPlayChain;
     this.PlayerPendingActions = playerPendingActions;
     this.InPlayChain.Lock(player);
 }
 public IPendingAction GetPendingAction(
     IPlayer player,
     IInPlayChain inPlayChain)
 {
     if (inPlayChain == null)
     {
         return new NewChainPendingAction(this.ChainList, this.PlayerPendingActions);
     }
     else
     {
         return new ChainAppendPendingAction(this.PlayerPendingActions,
                                                 player,
                                                 inPlayChain);
     }
 }