public void BuildShip(Ship ship) { Fleet fleet = new Fleet("Fleet " + (fleetList.Count + 1), ship); fleetList.Add(fleet); GameObject shipObject = GameObject.CreatePrimitive(PrimitiveType.Cube); shipObject.transform.position = PositionMath.RandomPosition(-50, 50); shipObject.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); shipObject.transform.parent = this.transform; fleetToObjectMap.Add(fleet, shipObject); }
public void BuildShip() { Ship ship = new Ship("Ship " + shipCount, 10, 10); Fleet fleet = new Fleet("Fleet " + (fleetList.Count + 1), ship); fleetList.Add(fleet); GameObject shipObject = GameObject.CreatePrimitive(PrimitiveType.Cube); shipObject.transform.position = PositionMath.RandomPosition(-50, 50); shipObject.transform.parent = this.transform; fleetToObjectMap.Add(fleet, shipObject); }
// 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; } } }
public void BuildShip() { if (PlayerManager.PlayerManagerInstance.playerResources.credits >= 10 && PlayerManager.PlayerManagerInstance.playerResources.minerals >= 10) { // Subtract 10 Credits PlayerManager.PlayerManagerInstance.playerResources.SubtractResource(1, 10); // Subtract 10 Minerals PlayerManager.PlayerManagerInstance.playerResources.SubtractResource(2, 10); Debug.Log("You now have: " + PlayerManager.PlayerManagerInstance.playerResources.credits + " Credits and " + PlayerManager.PlayerManagerInstance.playerResources.minerals + " Minerals"); Ship ship = new Ship("Ship " + shipCount, 10, 10); SolarSystem.SolarSystemInstance.currentPlanet.starBase.buildCue.Add(ship); GUIManagementScript.GUIManagerInstance.UpdateShipProductionUI(); Fleet fleet = new Fleet("Fleet " + (fleetList.Count + 1), ship); fleetList.Add(fleet); GameObject shipObject = GameObject.CreatePrimitive(PrimitiveType.Cube); shipObject.transform.position = PositionMath.RandomPosition(-50, 50); shipObject.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); shipObject.transform.parent = this.transform; fleetToObjectMap.Add(fleet, shipObject); } else { Debug.Log("Not Enough Resourses!"); } }
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; } } }