public StarSystemGenerator.StarSystemInfo GenerateSystem(StarSystem _starSystem, bool _active) { GameObject newSystem = StarSystemGenerator.CreateSystem(_starSystem.seed); newSystem.transform.parent = transform; //StarSystemGenerator.CreateSystemEdgeRing (seed).transform.parent = transform.GetChild(1); for (int i = 0; i < _starSystem.anomaliEvent.Length; i++) { GameObject newPoint = new GameObject("Anomali Event"); newPoint.transform.parent = newSystem.transform; newPoint.transform.localScale = new Vector3(2, 2, 2); newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetTorusMesh(); newPoint.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint.GetComponent <MeshRenderer> ().material.color = Color.white; GameObject newPoint2 = new GameObject(); newPoint2.transform.parent = newPoint.transform; newPoint2.transform.rotation = new Quaternion(-180, 0, 0, 0); newPoint2.transform.position = new Vector3(0, 6, 0); newPoint2.transform.localScale = new Vector3(2, 2, 2); newPoint2.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh(); newPoint2.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint2.GetComponent <MeshRenderer> ().material.color = Color.white; //newPoint.transform.position = StarSystemGenerator.GetRandomPoint (StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); //Vector3 newPos = Random.insideUnitSphere * StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed); //newPos.y = 25; newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "EventPoint"; newPoint.AddComponent <SphereCollider> (); newPoint.AddComponent <EventPoint> ().eventNumber = i; newPoint.GetComponent <EventPoint> ().eventListNumber = Random.Range(0, 23); } if (_starSystem.mainEvent) { GameObject newPoint = new GameObject("Main Event"); newPoint.transform.parent = newSystem.transform; newPoint.transform.localScale = new Vector3(2, 2, 2); newPoint.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetTorusMesh(); newPoint.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint.GetComponent <MeshRenderer> ().material.color = Color.yellow; GameObject newPoint2 = new GameObject(); newPoint2.transform.parent = newPoint.transform; newPoint2.transform.rotation = new Quaternion(-180, 0, 0, 0); newPoint2.transform.position = new Vector3(0, 6, 0); newPoint2.transform.localScale = new Vector3(2, 2, 2); newPoint2.AddComponent <MeshFilter> ().mesh = SolarBodyGeneration.GetConeMesh(); newPoint2.AddComponent <MeshRenderer> ().material.mainTexture = new Texture(); newPoint2.GetComponent <MeshRenderer> ().material.color = Color.yellow; //newPoint.transform.position = StarSystemGenerator.GetRandomPoint (StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); //Vector3 newPos = Random.insideUnitSphere * StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed); //newPos.y = 25; //newPoint.transform.position = newPos; newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "MainEventPoint"; newPoint.AddComponent <SphereCollider> (); } if (_starSystem.trader) { GameObject newPoint = new GameObject("Trader"); newPoint.transform.parent = newSystem.transform; GameObject ob = Instantiate(traderGameObject [Random.Range(0, traderGameObject.Length)], new Vector3(0, -12, 0), traderGameObject [Random.Range(0, traderGameObject.Length)].transform.rotation, newPoint.transform); newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "Trader"; newPoint.AddComponent <SphereCollider> (); } if (_starSystem.researchOutpost) { GameObject newPoint = new GameObject("Research Outpost"); newPoint.transform.parent = newSystem.transform; GameObject ob = Instantiate(researchGameObject [Random.Range(0, researchGameObject.Length)], new Vector3(0, -12, 0), researchGameObject [Random.Range(0, researchGameObject.Length)].transform.rotation, newPoint.transform); newPoint.transform.position = GetRandomNonCollidingPoint(StarSystemGenerator.GetStarSystemEdgeDistance(_starSystem.seed)); newPoint.tag = "ResearchOutpost"; newPoint.AddComponent <SphereCollider> (); } Vector3 particlePosition = Random.insideUnitSphere * 200; particlePosition.y = Random.Range(-350, -500); ps [1].transform.position = particlePosition; ParticleSystem.MainModule mainP = ps [1].main; mainP.startColor = new ParticleSystem.MinMaxGradient(NebulaColour.GetColour(Random.Range(0, 4))); for (int i = 0; i < ps.Length; i++) { ps[i].Stop(); ps[i].Clear(); ps[i].randomSeed = (uint)Random.Range(0, 99999); ps[i].Play(); } newSystem.SetActive(_active); return(StarSystemGenerator.GetStarSystemInfo(_starSystem.seed)); }
void UpdateGame() { if (finalEventBox.activeSelf) { return; } if (shipDestroyedBox.activeSelf) { return; } if (Input.GetKeyDown(KeyCode.Escape)) { if (eventSystem.eventObject.activeSelf) { return; } else if (researchOutpostUI.activeSelf) { return; } else if (shopUI.activeSelf) { return; } else if (autoPilotToggle.isOn) { CancelAutoPilotConfimation(); autoPilotToggle.isOn = false; } else if (blockingCanvas.sortingOrder == 3) { OpenQuitConfimationBoxMenu(false); OpenQuitConfimationBoxDesktop(false); } else if (gameMenuUI.activeSelf) { OpenGameMenu(false); } else if (blockingCanvas.sortingOrder == 1 && blockingCanvas.gameObject.activeSelf) { CancelDriveJumpConfimation(); CancelSystemJumpConfimation(); } else { OpenGameMenu(true); } } if (blockingCanvas.gameObject.activeSelf) { return; } if (autoPilotToggle.isOn) { UpdateAutoPilot(); } if (systemJumping) { UpdateSystemJump(); return; } if (driveJumping) { UpdateJumpDrive(); return; } if (mainEventProgress == 10) { FinalEvent(); SetBlockingCanvas(true, 1); } for (int i = 0; i < 2; i++) { cameras[i].UpdateCamera(mainMenu.cameraFollowShip.isOn); } if (ship.gameObject.activeSelf) { if (ship.UpdateShip(mainMenu.holdToMove.isOn) == false) { ShipDestroyed(); SetBlockingCanvas(true, 1); } Collider[] overlaps; overlaps = Physics.OverlapSphere(ship.transform.position, 5); if (overlaps.Length > 0) { interactionUI.SetActive(true); interactionText.text = overlaps [0].tag; } else { interactionUI.SetActive(false); } if (Input.GetKeyDown(KeyCode.E)) { InteractionCheck(); } } if (ship.money < 0) { ship.money = 0; } if (ship.research < 0) { ship.research = 0; } if (ship.jumpCharges < 0) { ship.jumpCharges = 0; } shipText [0].text = ship.strength.ToString() + "/" + ship.maxStrength.ToString(); shipText [1].text = ship.money.ToString(); shipText [2].text = ship.research.ToString(); shipText [3].text = ship.jumpCharges.ToString() + "/" + ship.maxJumpCharges.ToString(); if (Vector3.Distance(transform.position, ship.transform.position) > StarSystemGenerator.GetStarSystemEdgeDistance(mainGeneration.starSystem[mainGeneration.currentSystem].seed)) { shipOnOuterEdge = true; } else { shipOnOuterEdge = false; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (hit.transform.tag == "SystemPoint") { mainGeneration.currentHoverSystem = hit.transform.gameObject.GetComponent <SystemPoint> ().GetStarSystem(); SystemInfoUI.SetActive(true); // if (Input.mousePosition.y > (Screen.height / 10) *9) { // // // } SystemInfoUI.transform.position = Input.mousePosition; StarSystemGenerator.StarSystemInfo ssi = StarSystemGenerator.GetStarSystemInfo(mainGeneration.starSystem [mainGeneration.currentHoverSystem].seed); text [0].text = "Number of Planets: " + ssi.numberOfPlanets.ToString(); text [1].text = "Has Asteroid Belt: " + ssi.asteroidBelt.ToString(); text [2].text = "Star Class: " + ssi.starType.ToString(); text [3].text = "Distance: " + (int)GetSystemDistance(mainGeneration.currentSystem, mainGeneration.currentHoverSystem); text [4].text = "System Jumps Away: " + mainGeneration.systemPoint [mainGeneration.currentHoverSystem].numberOfJumpsAway; if (Input.GetMouseButtonDown(0)) { //if (jumping) { if (driveModeSlider.value == 0) { if (CheckSystemDistance(mainGeneration.currentSystem, mainGeneration.currentHoverSystem, ship.maxJumpDistance)) { driveJumpConfimationBox.SetActive(true); driveJumpConfimationBox.transform.position = Input.mousePosition; audioControl.PlaySoundEffect(2); SetBlockingCanvas(true, 1); } } else { if (CheckSystemConnection(mainGeneration.currentSystem, mainGeneration.currentHoverSystem)) { if (shipOnOuterEdge) { systemJumpConfimationBox.SetActive(true); systemJumpConfimationBox.transform.position = Input.mousePosition; audioControl.PlaySoundEffect(2); SetBlockingCanvas(true, 1); } } } } else if (Input.GetMouseButtonDown(1)) { SetupNewTargetSystem(mainGeneration.currentHoverSystem); UpdateClueDisplay(); } } } else { SystemInfoUI.SetActive(false); } }