Exemple #1
0
    def handle(self, handler_input):
        logger.info("HAN  FP_SetNumberQuestionsHandler")
        speech_list = []

        FreePlayAttr.set_attr_free_play(
            handler_input)  # reset questions asked.
        num_questions = SlotUtils.get_slot_val_by_name(handler_input,
                                                       'num_questions')

        if num_questions is None:
            ms_can_set_questions = FPNumQuestions.get_ms_can_set_num_questions(
            )
            prompt, reprompt = (FPNumQuestions.get_q_num_questions()
                                for _ in range(2))
            speech_list += Pauser.make_ms_pause_level_list(
                ms_can_set_questions, 2, prompt)

        else:
            FreePlayAttr.set_attr_num_questions(handler_input, num_questions)

            ms_confirm = ConfirmUtils.get_random_confirmation(handler_input)
            ms_ask_num_questions = FPNumQuestions.get_ms_ask_num_questions(
                handler_input)
            prompt = FPPrompts.get_q_fp_setup_prompt(handler_input)
            reprompt = FPPrompts.get_q_fp_setup_reprompt(handler_input)

            speech_list += Pauser.make_ms_pause_level_list(
                ms_confirm, ms_ask_num_questions, 2, prompt)

        ModeStats.translate_mode_stats_to_sesh(handler_input)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #2
0
    def handle(self, handler_input):
        logger.info("HAN  FP_SetTimesTablesHandler")
        attr = handler_input.attributes_manager.session_attributes
        speech_list = []

        ## Get & Set slots
        lower_table, upper_table, tables_query = (
            FreePlayAttr.get_times_table_input_slots(handler_input))

        ## Logic checks
        retry_query = attr.get('inform_query_tables_format', False)
        tables_provided = FreePlayLogic.check_tables_provided(
            lower_table, upper_table, tables_query)

        if tables_provided:
            FreePlayAttr.set_attr_free_play(handler_input)
            FreePlayAttr.set_attr_times_tables(handler_input, lower_table,
                                               upper_table, tables_query)

            if retry_query:
                ms_potential_mistake = FPTimesTables.get_ms_potential_mistake_parsing_query(
                )
                speech_list += Pauser.make_ms_pause_level_list(
                    ms_potential_mistake, 2)
            else:
                ms_confirm = ConfirmUtils.get_random_confirmation(
                    handler_input)
                speech_list.append(ms_confirm)

            ms_using_tables = (FPTimesTables.get_ms_using_tables_from_input(
                lower_table, upper_table, tables_query))
            speech_list += Pauser.make_ms_pause_level_list(ms_using_tables, 2)

            if retry_query:
                ms_retry_query = FPTimesTables.get_ms_can_retry_query_format()
                speech_list += Pauser.make_ms_pause_level_list(
                    ms_retry_query, 3.5)
                FreePlayAttr.reset_attr_query_format(handler_input)

            prompt = FPPrompts.get_q_fp_setup_prompt(handler_input)
            reprompt = FPPrompts.get_q_fp_setup_reprompt(handler_input)
            speech_list.append(prompt)

        ## Ask for times_tables slots
        else:
            q_times_tables, reprompt = (
                FPTimesTables.get_q_times_tables_input() for _ in range(2))
            q_times_tables = CardFuncs.format_prompt(q_times_tables)
            speech_list.append(q_times_tables)
            reprompt = LastPrompt.get_last_prompt(handler_input)

        ModeStats.translate_mode_stats_to_sesh(handler_input)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #3
0
    def handle(self, handler_input):
        logger.info("HAN    NoHandler")

        ms_confirmation = ConfirmUtils.get_confirmation(punct=True)
        prompt = HelpUtils.get_q_what_todo()

        reprompt = HelpUtils.get_ms_help_overview()

        speech_list = (ms_confirmation, 1, prompt)
        speech = get_linear_nlg(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #4
0
    def handle(self, handler_input):
        logger.info("HAN    CreateUserProfileHandler")

        user_name = SlotUtils.get_first_slot_value(handler_input)
        if not user_name:
            logger.info("HAN    RetryUserName")
            ms_welcome = UserProfileUtils.get_ms_welcome(handler_input)
            ms_retry_name = UserProfileUtils.get_ms_did_not_hear_name()

            prompt, reprompt = (
                UserProfileUtils.get_q_retry_name() for _ in range(2))
            prompt = CardFuncs.format_prompt(prompt)

            speech_list = (
                ms_welcome, 
                0.5,
                ms_retry_name,
                1.75,
                prompt
            )
        else:
            logger.info("HAN    CreatedProfile")
            UserProfileUtils.set_sesh_attr(handler_input, user_name)
            PlayerDict.create_new_player(handler_input, user_name)
            
            ms_confirm = ConfirmUtils.get_player_confirmation(handler_input)
            ms_created_first_profile = UserProfileUtils.get_ms_created_first_profile(handler_input)
        
            ms_overview = HelpUtils.get_ms_act_descript()
            prompt, reprompt = (
                HelpUtils.get_q_what_todo() for _ in range(2))
            prompt = CardFuncs.format_prompt(prompt)

            speech_list = (
                ms_confirm, 
                1,
                ms_created_first_profile,
                3,
                ms_overview,
                2.25,
                prompt
            )
        
        speech = get_linear_nlg(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (
            handler_input.response_builder
                .speak(speech)
                .ask(reprompt)
                .set_card( SimpleCard( card_title, card_text))
                .response)
Exemple #5
0
    def handle(self, handler_input):
        logger.info("HAN  FP_ParametersIntent")
        speech_list = []

        ms_confirm = ConfirmUtils.get_confirmation(True)
        ms_fp_params = FPSpeech.get_ms_fp_parameters(handler_input)

        prompt, reprompt = (LastPrompt.get_last_prompt(handler_input)
                            for _ in range(2))

        speech_list += Pauser.make_ms_pause_level_list(ms_confirm, 1,
                                                       ms_fp_params, 2.5,
                                                       prompt)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #6
0
    def handle(self, handler_input):
        speech_list = []

        ms_confirm = ConfirmUtils.get_random_confirmation(handler_input)
        prompt, reprompt = (HelpUtils.get_q_what_todo() for _ in range(2))

        speech_list += Pauser.make_ms_pause_level_list(ms_confirm, 2, prompt)

        ModeStats.translate_mode_stats_to_sesh(handler_input)

        ## Set end all attr
        FreePlayAttr.set_attr_end_fp(handler_input)
        SM_Attr.set_attr_end_survival_mode(handler_input)
        SC_Attr.set_attr_end_sc(handler_input)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #7
0
    def handle(self, handler_input):
        logger.info("HAN    NumQuestionsAnsweredHandler")
        attr = handler_input.attributes_manager.session_attributes
        speech_list = []

        questions_answered = attr.get('questions_answered', 0)
        ms_confirm = ConfirmUtils.get_player_confirmation(handler_input)

        ms_ans_questions = random.choice(
            mult_questions.data.MT_NUM_QUESTIONS_ANS).format(
                questions_answered)

        prompt, reprompt = (LastPrompt.get_last_prompt(handler_input)
                            for _ in range(2))
        speech_list += Pauser.make_ms_pause_level_list(ms_confirm, 1,
                                                       ms_ans_questions, 2,
                                                       prompt)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #8
0
    def handle(self, handler_input):
        logger.info("HAN    SC_StartHandler")
        speech_list = []

        SC_Attr.set_attr_start_sc(handler_input)
        player_obj = PlayerDict.load_player_obj(handler_input)
        difficulty = SlotUtils.get_resolved_value(handler_input, 'difficulty')

        if not difficulty:
            ms_welcome = SC_WelcomeUtils.get_ms_welcome(player_obj)
            q_difficulty, reprompt = (
                SC_Difficulty.get_q_sc_difficulty(player_obj)
                for _ in range(2))

            speech_list += Pauser.make_ms_pause_level_list(
                ms_welcome, 2, q_difficulty)

        elif difficulty:
            SC_Attr.set_sc_diff(handler_input, difficulty)
            ms_confirmation = ConfirmUtils.get_confirmation(True)
            ms_use_difficulty = SC_Difficulty.get_ms_using_difficulty(
                difficulty)

            SC_Questions.load_sc_questions(handler_input)
            ms_start_timer = SC_WelcomeUtils.get_ms_starting_time()
            question = SC_Questions.get_question(handler_input,
                                                 first_question=True)
            reprompt = question

            speech_list += Pauser.make_ms_pause_level_list(
                ms_confirmation, 0.5, ms_use_difficulty, 2, ms_start_timer,
                question)

            SC_Attr.save_start_time(handler_input)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #9
0
    def handle(self, handler_input):
        logger.info("HAN  FP_SetTableBoundsHandler")
        speech_list = []

        lower_bound, upper_bound = FreePlayAttr.get_table_bound_slots(
            handler_input)
        FreePlayAttr.set_table_bounds(handler_input, lower_bound, upper_bound)
        bounds_provided = FreePlayLogic.check_table_bounds_provided(
            lower_bound, upper_bound)

        if bounds_provided:
            confirm = ConfirmUtils.get_random_confirmation(handler_input)
            ms_adjusted_table_bounds = FPUpperLowerBounds.get_ms_set_table_bounds(
                lower_bound, upper_bound)
            prompt = FPPrompts.get_q_fp_setup_prompt(handler_input)
            reprompt = FPPrompts.get_q_fp_setup_reprompt(handler_input)

            # QuestionAttr.increment_questions_answered(handler_input, increase=False)
            ## New question, but not counted as answered.

            speech_list += Pauser.make_ms_pause_level_list(
                confirm, 1, ms_adjusted_table_bounds, 2, prompt)

        else:
            ms_can_change_bounds = FPUpperLowerBounds.get_ms_can_change_table_bounds(
            )
            prompt, reprompt = (FPUpperLowerBounds.get_q_change_bounds()
                                for _ in range(2))
            speech_list += Pauser.make_ms_pause_level_list(
                ms_can_change_bounds, 2.5, prompt)

        ModeStats.translate_mode_stats_to_sesh(handler_input)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)
Exemple #10
0
    def handle(self, handler_input):
        logger.info("HAN  FP_StartHandler")
        attr = handler_input.attributes_manager.session_attributes
        speech_list = []

        ## Set attr & get slots
        FreePlayAttr.set_attr_free_play(handler_input)

        ## Get table_input to start game.
        lower_table, upper_table, tables_query = (
            FreePlayAttr.get_times_table_input_slots(handler_input))
        FreePlayAttr.set_attr_times_tables(handler_input, lower_table,
                                           upper_table, tables_query)

        ## Logic check
        retry_query = attr.get('inform_query_tables_format', False)
        tables_provided = FreePlayLogic.check_tables_provided(
            lower_table, upper_table, tables_query)
        tables_exist = FreePlayLogic.check_tables_exist(handler_input)

        log_all(retry_query, tables_exist)

        ## Confirmation
        if tables_provided or tables_exist:

            if retry_query:
                ms_potential_mistake = FPTimesTables.get_ms_potential_mistake_parsing_query(
                )
                speech_list += Pauser.make_ms_pause_level_list(
                    ms_potential_mistake, 2)
            else:
                ms_confirm = ConfirmUtils.get_confirmation(punct=True)
                speech_list += Pauser.make_ms_pause_level_list(ms_confirm, 1)

            if tables_provided:
                ms_using_tables = (
                    FPTimesTables.get_ms_using_tables_from_input(
                        lower_table, upper_table, tables_query))
            elif tables_exist:
                ms_using_tables = None  # Create method to use existing tables.
            speech_list += Pauser.make_ms_pause_level_list(ms_using_tables, 2)

            if retry_query:
                ms_retry_query = FPTimesTables.get_ms_can_retry_query_format()
                speech_list += Pauser.make_ms_pause_level_list(
                    ms_retry_query, 3.5)
                FreePlayAttr.reset_attr_query_format(handler_input)

            ms_first_problem = FPQuestions.get_question(handler_input,
                                                        first_question=True)
            speech_list.append(ms_first_problem)

            reprompt = FPQuestions.get_rephrased_question(handler_input)

        if not tables_provided:
            ms_welcome = FPSpeech.get_ms_welcome(handler_input)
            q_times_tables, reprompt = (
                FPTimesTables.get_q_times_tables_input() for _ in range(2))
            q_times_tables = CardFuncs.format_prompt(q_times_tables)

            speech_list += Pauser.make_ms_pause_level_list(
                ms_welcome, 1.5, q_times_tables)

        ModeStats.translate_mode_stats_to_sesh(handler_input)

        speech = ' '.join(speech_list)
        card_title, card_text = CardFuncs.get_card_info(handler_input, speech)
        return (handler_input.response_builder.speak(speech).ask(
            reprompt).set_card(SimpleCard(card_title, card_text)).response)