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));
 }
Пример #3
0
 public bool PerguntaAcaoAnimal(AcaoAnimal acaoAnimal)
 {
     return(MessageQuestion.ConfirmationMessage(string.Format(PerguntaAcao, acaoAnimal.Acao)) == DialogResult.Yes);
 }
Пример #4
0
 public bool PerguntaSeAcertouAnimal(string nomeAnimal)
 {
     return(MessageQuestion.ConfirmationMessage(string.Format(PerguntaAnimal, nomeAnimal)) == DialogResult.Yes);
 }
Пример #5
0
 public bool PerguntarSeAnimalViveNaAgua()
 {
     return(MessageQuestion.ConfirmationMessage(PerguntaHabitat) == DialogResult.Yes);
 }