コード例 #1
0
        private void HidePage(SummaryPages page)
        {
            switch (page)
            {
            case SummaryPages.Info:
                HideInfoScreen();
                break;

            case SummaryPages.TrainerMemo:
                HideTrainerMemoScreen();
                break;

            case SummaryPages.Skills:
                HideSkillsScreen();
                break;

            case SummaryPages.Moves:
                HideMovesScreen();
                break;

            case SummaryPages.Ribbons:
                HideRibbonsScreen();
                break;

            case SummaryPages.Egg:
                break;

            case SummaryPages.MoveDetail:
                HideMoveDetailScreen();
                break;

            default:
                break;
            }
        }
コード例 #2
0
        private void Start()
        {
            // Get references
            ui_manager   = FindObjectOfType <UIManager>();
            audio_source = GetComponent <AudioSource>();
            player       = ui_manager.GetPlayerTrainer();
            party        = player.party;

            // Set starting page
            HideAllPages();
            current_page = SummaryPages.Info;

            // Ready for interaction
            page_changed    = true;
            pokemon_changed = true;
            awaiting_input  = true;
        }
コード例 #3
0
        private void Update()
        {
            // Get player input
            if (awaiting_input)
            {
                if (Input.GetKeyDown(KeyCode.RightArrow))
                {
                    if (current_page != SummaryPages.MoveDetail && !ribbon_details)
                    {
                        HidePage(current_page);
                        if ((int)current_page == SUMMARY_PAGES.Length - 1)
                        {
                            current_page = (SummaryPages)0;
                        }
                        else
                        {
                            current_page += 1;
                        }
                        page_changed = true;
                    }
                    else if (ribbon_details)
                    {
                        if (selected_ribbon % NUM_RIBBONS_IN_ROW == NUM_RIBBONS_IN_ROW - 1)
                        {
                            selected_ribbon -= (NUM_RIBBONS_IN_ROW - 1);
                            for (int i = 0; i < NUM_RIBBONS_IN_ROW - 1; i++)
                            {
                                RibbonSelLeft();
                            }
                        }
                        else
                        {
                            selected_ribbon += 1;
                            RibbonSelRight();
                        }
                        UpdateRibbonsScreen(current_pokemon);
                    }
                }
                else if (Input.GetKeyDown(KeyCode.LeftArrow))
                {
                    if (current_page != SummaryPages.MoveDetail && !ribbon_details)
                    {
                        HidePage(current_page);
                        if ((int)current_page == 0)
                        {
                            current_page = (SummaryPages)(SUMMARY_PAGES.Length - 1);
                        }
                        else
                        {
                            current_page -= 1;
                        }
                        page_changed = true;
                    }
                    else if (ribbon_details)
                    {
                        if (selected_ribbon % NUM_RIBBONS_IN_ROW == 0)
                        {
                            selected_ribbon += (NUM_RIBBONS_IN_ROW - 1);
                            for (int i = 0; i < NUM_RIBBONS_IN_ROW - 1; i++)
                            {
                                RibbonSelRight();
                            }
                        }
                        else
                        {
                            selected_ribbon -= 1;
                            RibbonSelLeft();
                        }
                        UpdateRibbonsScreen(current_pokemon);
                    }
                }
                else if (Input.GetKeyDown(KeyCode.DownArrow))
                {
                    if (current_page == SummaryPages.MoveDetail)
                    {
                        int sel_index = 0;
                        if (swapping_moves)
                        {
                            sel_index = 1;
                        }
                        if (selected_move == current_pokemon.GetNumMoves() - 1)
                        {
                            MoveSelToTop(sel_index);
                            selected_move = 0;
                        }
                        else
                        {
                            MoveSelDown(sel_index);
                            selected_move += 1;
                        }
                        UpdateMoveDetailsScreen(current_pokemon);
                    }
                    else if (ribbon_details)
                    {
                        if (selected_ribbon >= NUM_RIBBONS - NUM_RIBBONS_IN_ROW)
                        {
                            selected_ribbon -= (NUM_RIBBONS_IN_COL - 1) * NUM_RIBBONS_IN_ROW;
                            for (int i = 1; i < NUM_RIBBONS_IN_COL; i++)
                            {
                                RibbonSelUp();
                            }
                        }
                        else
                        {
                            selected_ribbon += NUM_RIBBONS_IN_ROW;
                            RibbonSelDown();
                        }
                        UpdateRibbonsScreen(current_pokemon);
                    }
                    else
                    {
                        HidePage(current_page);
                        if (pokemon_selection == party.size - 1)
                        {
                            pokemon_selection = 0;
                        }
                        else
                        {
                            pokemon_selection += 1;
                        }
                        page_changed    = true;
                        pokemon_changed = true;
                    }
                }
                else if (Input.GetKeyDown(KeyCode.UpArrow))
                {
                    if (current_page == SummaryPages.MoveDetail)
                    {
                        int sel_index = 0;
                        if (swapping_moves)
                        {
                            sel_index = 1;
                        }
                        if (selected_move == 0)
                        {
                            MoveSelToBottom(sel_index);
                            selected_move = current_pokemon.GetNumMoves() - 1;
                        }
                        else
                        {
                            MoveSelUp(sel_index);
                            selected_move -= 1;
                        }
                        UpdateMoveDetailsScreen(current_pokemon);
                    }
                    else if (ribbon_details)
                    {
                        if (selected_ribbon < NUM_RIBBONS_IN_ROW)
                        {
                            selected_ribbon += (NUM_RIBBONS_IN_COL - 1) * NUM_RIBBONS_IN_ROW;
                            for (int i = 1; i < NUM_RIBBONS_IN_COL; i++)
                            {
                                RibbonSelDown();
                            }
                        }
                        else
                        {
                            selected_ribbon -= NUM_RIBBONS_IN_ROW;
                            RibbonSelUp();
                        }
                        UpdateRibbonsScreen(current_pokemon);
                    }
                    else
                    {
                        HidePage(current_page);
                        if (pokemon_selection == 0)
                        {
                            pokemon_selection = party.size - 1;
                        }
                        else
                        {
                            pokemon_selection -= 1;
                        }
                        page_changed    = true;
                        pokemon_changed = true;
                    }
                }
                else if (Input.GetKeyDown(KeyCode.Z))
                {
                    if (current_page == SummaryPages.Moves)
                    {
                        HideGeneralComponents();
                        HidePage(current_page);
                        current_page  = SummaryPages.MoveDetail;
                        selected_move = 0;
                        page_changed  = true;
                    }
                    else if (current_page == SummaryPages.MoveDetail && !swapping_moves)
                    {
                        swapping_moves = true;
                        MarkCurrentMove();
                    }
                    else if (current_page == SummaryPages.MoveDetail)
                    {
                        swapping_moves = false;
                        SwapMoves(marked_move, selected_move);
                        UnmarkMarkedMove();
                        BuildCurrentPage();
                    }
                    else if (current_page == SummaryPages.Ribbons)
                    {
                        ribbon_details  = true;
                        selected_ribbon = 0;
                        UpdateRibbonsScreen(current_pokemon);
                    }
                    else
                    {
                        audio_source.clip = Specie.GetPokemonCry(current_pokemon.GetSpecieData().national_dex);
                        audio_source.Play();
                    }
                }
                else if (Input.GetKeyDown(KeyCode.X))
                {
                    if (current_page == SummaryPages.MoveDetail && !swapping_moves)
                    {
                        HidePage(current_page);
                        MoveSelToTop(0);
                        current_page = SummaryPages.Moves;
                        page_changed = true;
                    }
                    else if (current_page == SummaryPages.MoveDetail)
                    {
                        swapping_moves = false;
                        UnmarkMarkedMove();
                    }
                    else if (current_page == SummaryPages.Ribbons && ribbon_details)
                    {
                        ribbon_details = false;
                        for (int i = 0; i < selected_ribbon % NUM_RIBBONS_IN_ROW; i++)
                        {
                            RibbonSelLeft();
                        }
                        for (int i = 0; i < selected_ribbon / NUM_RIBBONS_IN_ROW; i++)
                        {
                            RibbonSelUp();
                        }
                        BuildCurrentPage();
                    }
                    else
                    {
                        CloseMenu();
                    }
                }
            }

            // Build/Show current page
            if (page_changed)
            {
                BuildCurrentPage();
            }

            // Animate pokemon icon
            if (current_page == SummaryPages.MoveDetail)
            {
                icon_anim_time += Time.deltaTime;
                // Keep icon animated
                if (icon_anim_time > Constants.ICON_ANIM_TIME)
                {
                    icon_anim_time  = 0;
                    icon_anim_frame = (icon_anim_frame + 1) % 2;
                    move_detail_poke_icon.sprite = Specie.GetPokemonIcon((uint)current_pokemon.species, icon_anim_frame, current_pokemon.form_id);
                }
            }

            // Animate pokemon sprite if using animated pokemon sprites
            if (Settings.ANIMATED_SPRITES && sprite_animated)
            {
                sprite_anim_time += Time.deltaTime;
                if (sprite_anim_time > Constants.SPRITE_ANIM_TIME)
                {
                    sprite_anim_time      = 0;
                    sprite_anim_frame     = (sprite_anim_frame + 1) % pokemon_frames.Length;
                    pokemon_sprite.sprite = pokemon_frames[sprite_anim_frame];
                }
            }
        }