// setup level void SetupLevel(LevelWrap level) { currentSelectedLevel = level; MoveMainBattle(level.levelTransform); ToggleLevelsOnPlanet(true); level.visited = true; }
PlanetWrap CreatePlanet(Transform orbit, int iteration) { PlanetWrap newPlanet = new PlanetWrap(iteration, orbit.GetChild(0).gameObject); for (int i = 0; i < newPlanet.numberOfLevels; i++) { LevelWrap newLevel = new LevelWrap(i, newPlanet.planetTransform.GetChild(i).gameObject); newPlanet.levels.Add(newLevel.levelTransform, newLevel); } return(newPlanet); }
//Overload for planet positioning. IEnumerator RotateTransform(Transform whatToRotate, Quaternion currentRot, float duration, float counter, LevelWrap level) // must cache the positions otherwise the lerp recalculates the position at each step!!!!! { MoveState(true, whatToRotate.position); while (counter < duration) { counter += Time.deltaTime; whatToRotate.localRotation = Quaternion.Lerp(currentRot, currentSelectedPlanet.levelPositions[level.id], counter / duration); yield return(null); } MoveTrasformToLocation(playerTransform, level.levelTransform, .5f); }
void MoveToSelectedLevel(LevelWrap level) { SetupLevel(level); StartCoroutine(RotateTransform(currentSelectedPlanet.planetTransform, currentSelectedPlanet.planetTransform.localRotation, .1f, 0f, level)); CurrentGameState = GameState.InBattle; }