public void Refresh(ifcLogros.Modo _mode) { int tmp = m_current; m_current = -1; goPage(_mode, tmp); }
private void goPage(ifcLogros.Modo _mode, int _page) { // si no hay lista de logros if (m_logros.m_lista == null || m_logros.m_lista.Length == 0) { return; } // si se va a listar la misma pagina de logros que se esta visualizando if (m_current == _page && m_currentMode == _mode) { return; } // si cambia de modo => mostrar la pagina 0 if (m_currentMode != _mode) { _page = 0; } // guardar el modo y la pagina a mostrar m_current = _page; m_currentMode = _mode; // calcular la posicion del primer logro y la cantidad de logros de este tipo int primerLogroDeEsteTipo; int numLogrosDeEsteTipo; switch (_mode) { case ifcLogros.Modo.PORTERO: // PORTERO primerLogroDeEsteTipo = 0; numLogrosDeEsteTipo = NUM_LOGROS_PORTERO; break; case ifcLogros.Modo.LANZADOR: // TIRADOR primerLogroDeEsteTipo = NUM_LOGROS_PORTERO; numLogrosDeEsteTipo = NUM_LOGROS_TIRADOR; break; default: // MULTIJUGADOR primerLogroDeEsteTipo = NUM_LOGROS_PORTERO + NUM_LOGROS_TIRADOR; numLogrosDeEsteTipo = NUM_LOGROS_MULTIJUGADOR; break; } // comprobar si hay que mostrar la flecha paginar izda y derecha m_flechaIzq.gameObject.SetActive(m_current != 0); m_flechaDer.gameObject.SetActive(m_current < ((numLogrosDeEsteTipo - 1) / NUM_LOGROS_PAGINA)); // pintar los logros de la pagina int primerLogroPagina = primerLogroDeEsteTipo + (_page * NUM_LOGROS_PAGINA); int ultimoLogroDeEsteTipo = primerLogroDeEsteTipo + numLogrosDeEsteTipo; for (int i = 0; (i < NUM_LOGROS_PAGINA); ++i) { if (primerLogroPagina + i < ultimoLogroDeEsteTipo) { // mostrar el logro m_icons[i].GetComponent <btnLogro>().set(m_logros.m_lista[primerLogroPagina + i]); m_icons[i].SetActive(true); } else { // ocultar el logro m_icons[i].SetActive(false); } } }