public bool SeekAndSelect(StarBehaviour searched) { if (m.lab) { this.canSelect = true; this.interact = false; if (!first) { previous.canSelect = false; previous.interact = false; } } for (int i = 0; i < neibours.Count; i++) { if (neibours[i].neibour == searched && !neibours[i].completed) { neibours[i].completed = true; completedStars++; if (completedStars == neibours.Count) { m.connections++; canSelect = false; } return(true); } } return(false); }
public void followTargetOnProjectionChange() { StarBehaviour sb = target.GetComponent <StarBehaviour>(); if (sb != null) { Vector3 temp = sb.star.pos; if (projection == Projection.RA_DIST) { temp = sb.star.ra_dist; temp.y += 2f; } else if (projection == Projection.FLAT_3D) { temp.y = 2f; } else { temp.y = 0; temp.x += 2f; Debug.Log(sb.star.pos); Debug.Log(temp); } transform.position = temp; transform.forward = new Vector3(0f, -1f, 0f); } else { Debug.Log("Star Behaviour not Found: followTargetOnProjectionChange"); } }
public void LoadInformation() { if (camBeh.target != null) { sb = camBeh.target.GetComponent <StarBehaviour>(); } else { Debug.Log("Null target!"); } if (sb != null) { star = sb.star; } else { Debug.Log("Star behaviour was null!"); } if (star != null) { textName.text = star.name; textDistance.text = "Distance: " + star.dist + "pc"; textSpectralType.text = "Spectral Type: " + star.spectralType; textLuminosity.text = "Luminosity: " + star.luminosity + "suns"; textConstelation.text = "Constelation: " + star.constelation; if (star.planetTextLoaded) { textPlanetInfo.text = star.planetText; textPlanetCount.text = "Known Planets: " + star.planetCount; textPlanetInfo.rectTransform.sizeDelta = new Vector2(textPlanetInfo.rectTransform.rect.width, star.planetCount * 210); } else { if (star.has_planets) { if (star.hipp != null && star.hipp.Length > 0) { StartCoroutine(loadPlanets()); } else { textPlanetCount.text = "Known Planets: 0"; textPlanetInfo.text = ""; } } else { textPlanetCount.text = "Known Planets: 0"; textPlanetInfo.text = ""; } } } else { Debug.Log("StarBehaviour.star was null!"); } }
void shoot() { Quaternion rot = this.transform.rotation * Quaternion.Euler(0, 0, -90); //Debug.Log("Shoot"); //ShootableObjects.instance.shootObject(0,this.transform.position,this.transform.rotation); GameObject star = ShootableObjects.instance.shootObject(0, this.transform.position, rot); StarBehaviour sb = star.GetComponent <StarBehaviour>(); sb.ttl = starTTL; sb.speed = starSpeed; }
void OnTriggerEnter2D(Collider2D col) { if (col.CompareTag("Score")) { StarBehaviour s = col.gameObject.GetComponent <StarBehaviour>(); if (s == null) { Debug.LogError("Every Score-Tagged Object needs a Starbehaviour script attached"); return; } s.Disappear(); } }
public void SelectStar(StarBehaviour star) { hasSelected = true; selectedStar = star; if (whiteLine) { DrawLine(selectedStar.transform.position, pos, Color.white); } else { DrawLine(selectedStar.transform.position, pos, Color.yellow); } isInstatiatedLine = false; }
void OnTriggerEnter2D(Collider2D collider) { if (collider.gameObject.tag == "Player") { return; } // Is this a shot? StarBehaviour star = collider.gameObject.GetComponent <StarBehaviour> (); if (star != null) { // Avoid friendly fire GameState.Instance.HP -= star.damage; if (GameState.Instance.HP <= 0) { Kill(); } } }
IEnumerator zoomToTarget() { StarBehaviour sb = target.GetComponent <StarBehaviour>(); Star s = sb.star; float zoomStartTime = Time.time; Vector3 startPos = transform.position; ///on the same plane as the star: Vector3 flatPos = new Vector3(startPos.x, s.posY, startPos.z); //rethink this if (flatPos.magnitude == 0) //In case we are directly above the target { flatPos.x = -2.0f; } Vector3 destination = (flatPos - s.pos).normalized * 2.5f; //The difference destination = s.pos + destination; //The difference between the target and cam destination.y = s.posY; //relocate the same y plane Quaternion lookRot = Quaternion.identity; Vector3 up = new Vector3(0f, 1f, 0f); while ((Time.time - zoomStartTime) < 2.1f) { if (projection != Projection.PERSPECTIVE) { break; } transform.position = Vector3.Lerp(startPos, destination, (Time.time - zoomStartTime) / 2f); lookRot = Quaternion.LookRotation((target.transform.position - transform.position), up); transform.rotation = Quaternion.Slerp(transform.rotation, lookRot, (Time.time - zoomStartTime) / 2f); yield return(null); } yield return(null); }
void OnTriggerEnter2D(Collider2D other) { StarBehaviour star = other.GetComponent <StarBehaviour>(); if (star == null) { return; } GameState.Instance.AddExperience(star.experiencePoints * StarCollectorGameManager.Instance.currentlyChasing); Debug.Log("Experience points: " + GameState.Instance.experience); // Debug.Log ("Multiplier: " + StarCollectorGameManager.Instance.currentlyChasing); SpecialEffectsHelper.Instance.StarCollected(other.gameObject.transform.position); gameObject.audio.Play(); Destroy(other.gameObject); // Decrease the number of chasing instances StarCollectorGameManager.Instance.currentlyChasing -= 1; StarCollectorGameManager.Instance.IncrementStarsCollected(); }
public void SelectSecondStar(StarBehaviour star) { if (selectedStar.SeekAndSelect(star)) { am.StopAllSounds(); star.SeekAndSelect(selectedStar); myLine.GetComponent <LineRenderer>().SetPosition(1, star.transform.position); isInstatiatedLine = true; am.PlayScaleSound(); if (star.canSelect) { selectedStar.Desselect(); star.SelectStar(); } else { selectedStar.Desselect(); } } else { DeleteLine(); if (star.canSelect) { selectedStar.Desselect(); star.SelectStar(); } else { selectedStar.Desselect(); } } }
IEnumerator CheckStars() { while (!LoadStars.loadingFinished) { yield return(null); } gameObjects = new GameObject[LoadStars.starsLength]; float sqrParsecLimit = LoadStars.parsecLimit * LoadStars.parsecLimit; //Refresh visible stars while (Application.isPlaying) { yield return(null); //pause one frame int lb = 0; for (int i = 0; i < LoadStars.starsLength; i++) { if (LoadStars.stars[i] == null) { Debug.Log("Fudge!"); } else { //Check VISIBLE DISTANCES bool show = false; if (CameraBehaviour.projection == CameraBehaviour.Projection.PERSPECTIVE) { if ((LoadStars.stars[i].pos - camB.target.transform.position).sqrMagnitude <= sqrParsecLimit) { show = true; } } else if (CameraBehaviour.projection == CameraBehaviour.Projection.FLAT_3D) { Vector3 temp = LoadStars.stars[i].pos - camTransform.position; temp.y = 0; if (temp.sqrMagnitude <= sqrParsecLimit) { show = true; } } else if (CameraBehaviour.projection == CameraBehaviour.Projection.RA_DIST) { if ((LoadStars.stars[i].ra_dist - camTransform.position).sqrMagnitude <= sqrParsecLimit) { show = true; } } if (show == true) { if (gameObjects[i] == null && LoadStars.stars[i] != null) { gameObjects[i] = new GameObject(LoadStars.stars[i].name); MeshRenderer mr = gameObjects[i].AddComponent <MeshRenderer>(); MeshFilter mf = gameObjects[i].AddComponent <MeshFilter>(); mf.mesh = m; if (LoadStars.stars[i].spectralType.Length > 0) { char type = LoadStars.stars[i].spectralType[0]; if (type == 'G') { mr.material = mG; // = new Color(225, 159, 100); } else if (type == 'A' || type == 'a') { mr.material = mA; } else if (type == 'B' || type == 'b') { mr.material = mB; } else if (type == 'F' || type == 'f') { mr.material = mF; } else if (type == 'K' || type == 'k') { mr.material = mK; } else if (type == 'M' || type == 'm') { mr.material = mM; } else { mr.material = mG; } } else { mr.material = mG; } StarBehaviour sb = gameObjects[i].AddComponent <StarBehaviour>(); gameObjects[i].transform.position = LoadStars.stars[i].pos; //Edited: Moved size by luminosity to after new gameobject check sb.star = LoadStars.stars[i]; sb.t_toCopy = textPrefab; } else //if gameobject is ALREADY DEFINED { if (LoadStars.stars[i].has_planets) { StarBehaviour sb = gameObjects[i].GetComponent <StarBehaviour>(); if (sb != null) { if (planetaryHighlight) { if (!sb.isShowingPlanets) { gameObjects[i].GetComponent <MeshRenderer>().material = mPlanetary; sb.isShowingPlanets = true; } } else { if (sb.isShowingPlanets) { if (LoadStars.stars[i].spectralType.Length > 0) { char type = LoadStars.stars[i].spectralType[0]; if (type == 'G') { gameObjects[i].GetComponent <MeshRenderer>().material = mG; // = new Color(225, 159, 100); } else if (type == 'A' || type == 'a') { gameObjects[i].GetComponent <MeshRenderer>().material = mA; } else if (type == 'B' || type == 'b') { gameObjects[i].GetComponent <MeshRenderer>().material = mB; } else if (type == 'F' || type == 'f') { gameObjects[i].GetComponent <MeshRenderer>().material = mF; } else if (type == 'K' || type == 'k') { gameObjects[i].GetComponent <MeshRenderer>().material = mK; } else if (type == 'M' || type == 'm') { gameObjects[i].GetComponent <MeshRenderer>().material = mM; } else { gameObjects[i].GetComponent <MeshRenderer>().material = mG; } } else { gameObjects[i].GetComponent <MeshRenderer>().material = mG; } sb.isShowingPlanets = false; } } //end of planetary highlight check //Size by luminosity? } else { Debug.Log("Starbehaviour was null!"); } } //if has_has planets, check that its material is correct // } if (sizeByLuminosity) { float scaler = 1; float.TryParse(LoadStars.stars[i].luminosity, out scaler); scaler = Mathf.Sqrt(scaler); gameObjects[i].transform.localScale = new Vector3(scaler, scaler, scaler); } else { gameObjects[i].transform.localScale = new Vector3(1, 1, 1); } lb++; if (lb >= 3000) { lb = 0; yield return(null); } } else { if (gameObjects[i] != null) { if (camB.target != gameObjects[i]) { Destroy(gameObjects[i]); } } } } } yield return(null); } yield return(null); }
private void Start() { cam = Camera.main.transform; star = GetComponent <StarBehaviour>(); generationDistance = star.Scale * 5f; }