private void ProcessQuestion(MessageQuestion question, ref int lineIndex) { if (!question.Answers.Any()) { return; } if (_wordsByLine[lineIndex].Any()) { ProcessLineBreak(ref lineIndex); } _answers = question.Answers; _colorsByWordCoordinate[new Coordinate(0, lineIndex)] = question.QuestionForegroundColor; ProcessText(question.Prompt, MessageTextAlignment.Center, ref lineIndex); ProcessLineBreak(ref lineIndex); MessageTextAnswer[] answers = question.Answers.Select(arg => GetMessageTextAnswer(question, arg)).ToArray(); float lineWidth = (_selectedAnswerWindowTexture.SpriteWidth * 2 * answers.Length) + (TextAdventure.Xna.Constants.MessageRenderer.AnswerHorizontalPadding * (answers.Length - 1)) + (TextAdventure.Xna.Constants.MessageRenderer.AnswerHorizontalTextPadding * 2 * answers.Length) + answers.Sum(arg => arg.Size.X); float lineHeight = (_selectedAnswerWindowTexture.SpriteHeight * 2) + answers.Max(arg => arg.Size.Y); _lineSizesByLine[lineIndex] = new Vector2(lineWidth, lineHeight); _wordsByLine[lineIndex] = new List <MessageTextWord>(answers); _alignmentsByLine[lineIndex] = MessageTextAlignment.Center; }
private MessageTextAnswer GetMessageTextAnswer(MessageQuestion question, MessageAnswer answer) { return(new MessageTextAnswer( answer, answer.Text, _font.MeasureString(answer.Text) + TextAdventure.Xna.Constants.MessageRenderer.ShadowOffset, question.UnselectedAnswerForegroundColor, question.SelectedAnswerForegroundColor, question.SelectedAnswerBackgroundColor)); }
public bool PerguntaAcaoAnimal(AcaoAnimal acaoAnimal) { return(MessageQuestion.ConfirmationMessage(string.Format(PerguntaAcao, acaoAnimal.Acao)) == DialogResult.Yes); }
public bool PerguntaSeAcertouAnimal(string nomeAnimal) { return(MessageQuestion.ConfirmationMessage(string.Format(PerguntaAnimal, nomeAnimal)) == DialogResult.Yes); }
public bool PerguntarSeAnimalViveNaAgua() { return(MessageQuestion.ConfirmationMessage(PerguntaHabitat) == DialogResult.Yes); }