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; } }
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; }
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]; } } }