// callbacks public void OnTriggerEnterCallBack(KLevelName level, KLevelName beacon) { // determina a qual dos niveis o portal deve levar if (game_state_.GetCurrentLevel == level || game_state_.GetCurrentLevel == beacon) { // deve teleportar para o nivel IEnumeratorCallBacks.Instance.LoadNewScene(game_state_.GetCurrentLevelSceneIndex()); } }
// metodos publics para avançar nos niveis public void CompletedLevel() { // dependendo do nivel em que o jogo se encontra switch (current_level_) { case KLevelName.Hamr: // se o jogador completar o nivel Hamr, muda o nivel actual para o beacon current_level_ = KLevelName.HamrBeacon; // altera o nivel actual para hamrBeacon break; case KLevelName.HamrBeacon: // se o jogador completar o beacon de Hamr, muda o nivel actual para Hugr, e altera tambem // o portal current_level_ = KLevelName.Hugr; // altera o nivel atual para Hugr break; case KLevelName.Hugr: // se o jogador completar o nivel hugr, muda o nivel actual para hugrBeacon current_level_ = KLevelName.HugrBeacon; // altera o nivel actual para HugrBeacon break; case KLevelName.HugrBeacon: // se o jogador completar o beacon de Hugr beacon, muda o nivel e o portal para Fylgja current_level_ = KLevelName.Fylgja; // altera o nivel actual para fylgja break; case KLevelName.Fylgja: // se o jogador completar o beacon de fylgja, muda o nivel para o beacon de fylgja current_level_ = KLevelName.FylgjaBeacon; // altera o nivel para o beacon de fylgja break; case KLevelName.FylgjaBeacon: // caso o jogador tenho completo o beacon de filgja, muda o nivel e o actual para haminja current_level_ = KLevelName.Hamingja; // altera o nivel actual para filgja break; case KLevelName.Hamingja: // caso o jogador tenha completo o hamingja, o beacon fica disponivel current_level_ = KLevelName.HamingjaBeacon; break; case KLevelName.HamingjaBeacon: // caso o jogador tenha completo o beacon de hamingja, o jogo terminou, marca o nivel como o principal current_level_ = KLevelName.Gaol; break; } // determina qual o portal DefinePortal(); }