public void ResetGalaxy() { List <Star> starList = starToObjectMap.Keys.ToList <Star>(); starToObjectMap = new Dictionary <Star, GameObject>(); for (int i = 0; i < starList.Count; i++) { Star star = starList[i]; GameObject starGO = SpaceObjects.CreateSphereObject(star.starName, star.starPosition, this.transform); SetStarMaterial(starGO, star); starToObjectMap.Add(star, starGO); } GalaxyInstance.galaxyView = true; }
// This method creates the solar system view after a star is clicked on in the galaxy view public void CreateSolarSystem(Star star) { GameObject starGO = GameObject.CreatePrimitive(PrimitiveType.Sphere); starGO.transform.position = Vector3.zero; starGO.name = star.starName; starGO.transform.SetParent(this.transform); for (int i = 0; i < star.planetList.Count; i++) { Planet planet = star.planetList[i]; Vector3 planetPos = PositionMath.PlanetPosition(i); SpaceObjects.CreateSphereObject(planet.planetName, planetPos, this.transform); } }
public void CreateSolarSystem(Star starData) { CameraController.instance.SolarSystemCameraSettings(); SpaceObjects.CreateSphereObject(starData.starName, Vector3.zero, transform); for (int i = 0; i < starData.planetList.Count; i++) { Planet planet = starData.planetList[i]; Vector3 planetPos = PositionMath.PlanetPosition(i); SpaceObjects.CreateSphereObject(planet.planetName, planetPos, this.transform); GameObject orbit = SpaceObjects.CreateOrbitPath(orbitSpritePrefab, planet.planetName + " Orbit", i + 1, transform); } galaxyViewButton.interactable = true; }
// This method creates the solar system view after a star is clicked on in the galaxy view public void CreateSolarSystem(Star star) { Random.InitState(Galaxy.GalaxyInstance.seedNumber); Galaxy.GalaxyInstance.galaxyView = false; SpaceObjects.CreateSphereObject(star.starName, Vector3.zero, this.transform); for (int i = 0; i < star.planetList.Count; i++) { Planet planet = star.planetList[i]; Vector3 planetPos = PositionMath.PlanetPosition(i); SpaceObjects.CreateSphereObject(planet.planetName, planetPos, this.transform); } galaxyViewButton.interactable = true; }
private static void MoveShot() { List <SpaceObjects> newList = new List <SpaceObjects>(); for (int i = 0; i < shotsFired.Count; i++) { SpaceObjects currentShot = shotsFired[i]; SpaceObjects newShot = new SpaceObjects(); newShot.x = currentShot.x; newShot.y = currentShot.y - 1; newShot.symbol = currentShot.symbol; newShot.color = currentShot.color; if (newShot.y >= 0) { newList.Add(newShot); } } shotsFired = newList; }
// This method creates the solar system view after a star is clicked on in the galaxy view public void CreateSolarSystem(Star star) { CameraController.cameraController.ResetCamera(); Galaxy.GalaxyInstance.selectionIcon.SetActive(false); Random.InitState(Galaxy.GalaxyInstance.seedNumber); Galaxy.GalaxyInstance.galaxyView = false; GameObject starGO = SpaceObjects.CreateSphereObject(star.starName, Vector3.zero, this.transform); if (star.starOwned == true) { starGO.GetComponent <MeshRenderer>().material = starOwnedMaterial; } for (int i = 0; i < star.planetList.Count; i++) { Planet planet = star.planetList[i]; Vector3 planetPos = PositionMath.PlanetPosition(i); GameObject planetGO = SpaceObjects.CreateSphereObject(planet.planetName, planetPos, this.transform); if (planet.planetColonised == true) { planetGO.GetComponent <MeshRenderer>().material = planetColonisedMaterial; } GameObject orbit = SpaceObjects.CreateOrbitPath(OrbitSpritePrefab, planet.planetName + " Orbit", i + 1, this.transform); } galaxyViewButton.interactable = true; buildShipButton.interactable = true; storeMaxZoom = CameraController.cameraController.maxZoom; CameraController.cameraController.maxZoom = solarSystemZoom; fleetManager.EnableFleets(); }
public void CreateSolarSystem(Star star) { CameraController.Instance.ResetCamera(); Random.InitState(Galaxy.Instance.seedNumber); Galaxy.Instance.GalaxyView = false; Galaxy.Instance.PathView = false; var mainStar = SpaceObjects.CreateSphereObject(star.StarName, Vector3.zero, star.StarSize, this.transform); mainStar.GetComponent <Renderer>().material.color = SpaceObjects.StarColors[star.ColorIndex]; for (int i = 0; i < star.NumberOfPlanets; i++) { PlanetaryObject planet = star.PlanetList[i]; if (planet.PlanetType != "Empty") { var position = PositionMath.PlanetPosition(i); SpaceObjects.CreateSphereObject(planet.PlanetName, position, planet.PlanetSize, this.transform); //var orbit = SpaceObjects.CreateOrbitPath(OrbitSpritePrefab, planet.PlanetName + "Orbit", i + 1, this.transform); var orbit = SpaceObjects.CreateOrbitRing(OrbitCirclePrefab, "Orbit " + i, i + 1, this.transform); var circle = orbit.GetComponent <Circle>(); circle.SetupCircle(); if (i < 3) { circle.SetColor(Color.yellow, Color.yellow); } else if (i == 3) { circle.SetColor(Color.green, Color.green); } else { circle.SetColor(Color.blue, Color.blue); } } } galaxyViewButton.interactable = true; pathViewButton.interactable = false; SystemDetailsText.text = star.Details(2); }
void CreateSolarSystem(Star star) { Random.InitState(Galaxy.GalaxyInstance.seedNumber); Galaxy.GalaxyInstance.galaxyView = false; SpaceObjects.CreateSphereObject(star.starName, Vector3.zero, this.transform); for (int i = 0; i < star.planetList.Count; i++) { Planet planet = star.planetList[i]; float distance = (i + 1) * 5; float angle = Random.Range(0, 2 * Mathf.PI); Vector3 planetPos = new Vector3(distance * Mathf.Cos(angle), 0, distance * Mathf.Sin(angle)); SpaceObjects.CreateSphereObject(planet.planetName, planetPos, this.transform); } galaxyViewButton.interactable = true; }
// This method creates a galaxy of stars and planet information. public void CreateGalaxy() { starToObjectMap = new Dictionary <Star, GameObject>(); Random.InitState(seedNumber); galaxyView = true; int failCount = 0; for (int i = 0; i < numberOfStars; i++) { Star starData = new Star("Star" + i, Random.Range(1, 10)); //Debug.Log("Created " + starData.starName + " with " + starData.numberOfPlanets + " planets"); CreatePlanetData(starData); Vector3 cartPosition = PositionMath.RandomPosition(minimumRadius, maximumRadius); Collider[] positionCollider = Physics.OverlapSphere(cartPosition, minDistBetweenStars); if (positionCollider.Length == 0) { GameObject starGO = SpaceObjects.CreateSphereObject(starData.starName, cartPosition, this.transform); starToObjectMap.Add(starData, starGO); failCount = 0; } else { i--; failCount++; } if (failCount > numberOfStars) { Debug.LogError("Could not fit all the stars in the galaxy. Distance between stars too big!"); break; } } }
private static void MoveEnemyShips() { int chance = randomGenerator.Next(1, 101); if (chance < 15) { List <SpaceObjects> newList = new List <SpaceObjects>(); for (int i = 0; i < enemyShips.Count; i++) { SpaceObjects currentEnemy = enemyShips[i]; SpaceObjects newEnemy = new SpaceObjects(); newEnemy.x = currentEnemy.x; newEnemy.y = currentEnemy.y + 1; newEnemy.symbol = currentEnemy.symbol; newEnemy.color = currentEnemy.color; if (newEnemy.y == userShip.y) { livesCount--; lostGame = true; } if (newEnemy.y < Console.WindowHeight) { newList.Add(newEnemy); } if (livesCount <= 0) { PrintStringOnPosition(8, 10, "GAME OVER!!!", ConsoleColor.Red); PrintStringOnPosition(8, 12, "Press [enter] to exit", ConsoleColor.Red); Console.ReadLine(); Environment.Exit(0); } } enemyShips = newList; } }
// This method creates the solar system view after a star is clicked on in the galaxy view public void CreateSolarSystem(Star star) { CameraController.cameraController.ResetCamera(); Random.InitState(Galaxy.GalaxyInstance.seedNumber); Galaxy.GalaxyInstance.galaxyView = false; SpaceObjects.CreateSphereObject(star.starName, Vector3.zero, this.transform); for (int i = 0; i < star.planetList.Count; i++) { Planet planet = star.planetList[i]; Vector3 planetPos = PositionMath.PlanetPosition(i); SpaceObjects.CreateSphereObject(planet.planetName, planetPos, this.transform); GameObject orbit = SpaceObjects.CreateOrbitPath(OrbitSpritePrefab, planet.planetName + " Orbit", i + 1, this.transform); } galaxyViewButton.interactable = true; }
public override string ToString() { var largestObject = SpaceObjects.Largest(); // If sector doesn't have space objects, or the star system is unexplored, early return just the sector name if (largestObject == null || StarSystem == null) { return(Name); } // From here on, largestObject and StarSystem are defined // Don't display the star system name, if the space object's name contains it, to avoid repetition bool objectNameContainsStarName = Regex.IsMatch(largestObject.Name, string.Format(@"\b{0}\b", Regex.Escape(StarSystem.Name ?? "(unexplored)"))); if (objectNameContainsStarName) { return(largestObject + " (" + Coordinates.X + ", " + Coordinates.Y + ")"); } else { return(largestObject + " at " + Name); } }
public void CreateSpiralGalaxy() { Random.InitState(seedNumber); float starsPerArm = numberOfStars / numberOfArms; int starsPerArmRounded = Mathf.RoundToInt(starsPerArm); int difference = numberOfStars - (starsPerArmRounded * numberOfArms); for (int i = 0; i < numberOfArms; i++) { for (int j = 0; j < starsPerArmRounded; j++) { Star starData = new Star("Star " + (j + (starsPerArm * i)), Random.Range(1, 10)); float armAngle = (((Mathf.PI * 2f) / numberOfArms) * i); float starAngle = (((Mathf.PI * 2f) / starsPerArmRounded) * j); float angle = PositionMath.SpiralAngle(armAngle, starAngle) + Random.Range(-Mathf.PI / (2 * numberOfArms), Mathf.PI / (2 * numberOfArms)); float distance = (4 * numberOfArms) * Mathf.Sqrt(j + 1) + minimumRadius; Vector3 cartPos = PositionMath.PolarToCart(distance, angle); SpaceObjects.CreateSphereObject(starData.starName, cartPos, this.transform); } } }
public IEnumerable <IAbilityObject> GetContainedAbilityObjects(Empire emp) { return(SpaceObjects.Where(sobj => sobj?.Owner == emp).OfType <IAbilityObject>()); }
private void Start() { spaceController = SpaceController.Instance; thisObject = GetComponent <SpaceObjects>(); }
public void CreateSpiralGalaxy() { float percent = percentageStarsCentre / 100f; float starsInCentre = percent * numberOfStars; int starsInCentreRounded = Mathf.RoundToInt(starsInCentre); float starsPerArm = (numberOfStars - starsInCentreRounded) / numberOfArms; int starsPerArmRounded = Mathf.RoundToInt(starsPerArm); int difference = numberOfStars - (starsPerArmRounded * numberOfArms) - starsInCentreRounded; int starCount = 0; // Spawn Arms for (int i = 0; i < numberOfArms; i++) { for (int j = 0; j < starsPerArmRounded; j++) { Star starData = new Star("Star " + starCount, Random.Range(1, 10)); starCount++; float armAngle = (((Mathf.PI * 2f) / numberOfArms) * i); float starAngle = (((Mathf.PI * 2f) / starsPerArmRounded) * j); float angle = PositionMath.SpiralAngle(armAngle, starAngle) + Random.Range(-Mathf.PI / (2 * numberOfArms), Mathf.PI / (2 * numberOfArms)); float distance = (6 * numberOfArms) * Mathf.Sqrt(j + 1) + minimumRadius; Vector3 cartPosition = PositionMath.PolarToCart(distance, angle); int failCount = 0; bool collision = PositionMath.CheckCollisions(minDistBetweenStars, cartPosition); if (collision != true) { GameObject starGO = SpaceObjects.CreateSphereObject(starData.starName, cartPosition, this.transform); failCount = 0; } else { j--; failCount++; } if (failCount > numberOfStars) { break; } } } // Spawn Centre for (int k = 0; k < starsInCentreRounded + difference; k++) { Star starData = new Star("Star " + starCount, Random.Range(1, 10)); starCount++; Vector3 cartPosition = PositionMath.RandomPosition(minimumRadius, minimumRadius + (numberOfArms * 20)); bool collision = PositionMath.CheckCollisions(minDistBetweenStars, cartPosition); int failCount = 0; if (collision != true) { GameObject starGO = SpaceObjects.CreateSphereObject(starData.starName, cartPosition, this.transform); failCount = 0; } else { k--; failCount++; } if (failCount > numberOfStars) { break; } } }
public void AddSpaceObject(SpaceObjects _obj) { objects.Add(_obj); }
void CreateStarObject(Star starData, Vector3 cartPosition) { GameObject starGO = SpaceObjects.CreateSphereObject(starData.starName, cartPosition, this.transform); starToObjectMap.Add(starData, starGO); }
/// <summary> /// Finds all space objects of a type. /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public IEnumerable <T> FindSpaceObjects <T>() { return(SpaceObjects.OfType <T>()); }