/// <summary> /// This method creates the Response Request before prompting the user for an Action. /// </summary> /// <param name="responseRequestType"></param> public static IPlayerResponseRequest CreatePlayerResponseRequest(ResponseRequestTypeEnum responseRequestType, PlayerResponseControl playerResponseControl, BlackJackPlayerControl blackJackPlayerControl, Options houseRules) { // initial valule IPlayerResponseRequest playerResponseRequest = null; // Determine the action by the responseRequestType switch (responseRequestType) { case ResponseRequestTypeEnum.PlaceBet: // Create a placeBetResponse playerResponseRequest = new PlaceBetResponseRequest(houseRules); // required break; case ResponseRequestTypeEnum.PlayHand: // Create a placeBetResponse playerResponseRequest = new PlayHandResponseRequest(houseRules); // required break; case ResponseRequestTypeEnum.Insurance: // Create a placeBetResponse playerResponseRequest = new TakeInsuranceResponseRequest(houseRules); // required break; } // if the request exists if (NullHelper.Exists(playerResponseRequest)) { // Setup the controls playerResponseRequest.BlackJackPlayerControl = blackJackPlayerControl; playerResponseRequest.PlayerResponseControl = playerResponseControl; } // return value return(playerResponseRequest); }
/// <summary> /// This method returns the For Bet /// </summary> internal void PromptForBet(PlayerResponseControl responseControl, Hand hand, Options houseRules) { // locals PlaceBetResponseRequest placeBetResponseRequest = null; PlayerResponse playerResponse = null; double amountWagered = 0; // If the responseControl object exists if ((NullHelper.Exists(responseControl)) && (responseControl.HasResponseRequest)) { // get a local copy so the type is shorter placeBetResponseRequest = responseControl.ResponseRequest as PlaceBetResponseRequest; // if the responseRequest exists if (NullHelper.Exists(placeBetResponseRequest)) { // if this is a computer player if (this.IsComputerPlayer) { // if the SendResponseCallBack exists if (responseControl.HasSendResponseCallBack) { // To Do: Create a computer logic, this is just a stub for now amountWagered = placeBetResponseRequest.TableMinimum * 7; // If the PlayerControl object exists if (this.HasPlayerControl) { // Show the amount the computer player bet this.PlayerControl.ShowAmountWagered(amountWagered); } // Create the PlayerResponse playerResponse = new PlayerResponse(ResponseTypeEnum.PlaceBet, amountWagered); // Set the responseCallBack responseControl.SendResponseCallBack(playerResponse); } } else { // not a computer player, this is a human the dealer must interact with // If the PlayerControl object exists if ((this.HasPlayerControl) && (NullHelper.Exists(responseControl))) { // Create a new hand hand.Player = this; // Show the Chip Selector and the Amount Bet TextBox this.PlayerControl.PromptForBet(); // Create the response and cast it as a PlaceBetResponse PlaceBetResponseRequest request = PlayerResponseFactory.CreatePlayerResponseRequest(ResponseRequestTypeEnum.PlaceBet, responseControl, this.PlayerControl, houseRules) as PlaceBetResponseRequest; // if the request exists if (NullHelper.Exists(request)) { // Setup the Response before showing responseControl.ResponseRequest = request; // Prompt the user for a response playerResponse = request.Start(responseControl, this.PlayerControl); } } else { // this must be sitting out hand.SittingOut = true; hand.Player.SittingOut = true; } } } else { // Without a ResponseRequest they are sitting out this.SittingOut = true; hand.Player.SittingOut = true; } } // Change the status of this player if it changed this.SittingOut = hand.SittingOut; }