public GetActionContext(
     IReadOnlyCollection <PlayerActionAndName> previousRoundActions,
     GameStackStage currentGameStackStage,
     List <IReadOnlyCollection <PlayerActionAndName> > roundsActions,
     GameRoundType roundType,
     Card firstCard,
     Card secondCard,
     IReadOnlyCollection <Card> communityCards,
     int smallBlind,
     int myMoney,
     int opponentStack,
     int currentPot,
     bool canCheck,
     string name)
 {
     this.PreviousRoundActions  = previousRoundActions;
     this.CurrentGameStackStage = currentGameStackStage;
     this.RoundsActions         = roundsActions;
     this.RoundType             = roundType;
     this.FirstCard             = firstCard;
     this.SecondCard            = secondCard;
     this.CommunityCards        = communityCards;
     this.SmallBlind            = smallBlind;
     this.MyMoney       = myMoney;
     this.OpponentStack = opponentStack;
     this.CurrentPot    = currentPot;
     this.CanCheck      = canCheck;
     this.Name          = name;
 }
        public override void StartHand(StartHandContext context)
        {
            base.StartHand(context);
            this.bigBlind = context.SmallBlind * 2;
            int opponentMoney = (this.startGameMoney * 2) - context.MoneyLeft;
            int smallestMoney = Math.Min(context.MoneyLeft, opponentMoney);

            this.currentGameStackStage = this.CalculateCurrentGameStackStage(context.SmallBlind, smallestMoney);
            this.roundsActions.Clear();
        }