public static bool playerInteractedWith(Vector3 location) { if (Input.GetMouseButtonDown(1)) { Vector3 mousePos = PositionMath.getMouseLocation(); if ((location - mousePos).magnitude < GlobalConstants.InteractionDistance) { if ((getPlayerPosition() - location).magnitude < GlobalConstants.PlayerInteractionDistance) { return(true); } } } if (Input.GetKeyDown(KeyCode.Space)) { if ((getPlayerPosition() - location).magnitude < GlobalConstants.PlayerInteractionDistance) { return(true); } } return(false); }
// 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; } } }
// This method creats the galaxy arms void CreateArms() { // Spawn Arms for (int i = 0; i < numberOfArms; i++) { for (int j = 0; j < starsPerArmRounded; j++) { 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) { Star starData = CreateStarData(starCount); starData.starPosition = cartPosition; starCount++; CreateStarObject(starData, cartPosition); failCount = 0; } else { j--; failCount++; } if (failCount > numberOfStars) { break; } } } }
// 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 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() { 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 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 CameraFollowTargetPosition() { Vector3 p = PositionMath.CameraLocalPositionFollowUnitLocalPosition(targetTransform.localPosition); transform.localPosition = p; }
public void OnEvent() { GameObject.Instantiate(Resources.Load("Prefabs/match"), PositionMath.findLocationToSpawn(0), Quaternion.identity); }
public void ShowTileIndicator(Vector2Int tilePos, bool flash = true) { PositionMath.SetUnitLocalPosition(tileIndicator.transform, tilePos); tileIndicator.SetActive(true); flashIndicator = flash; }
public ETileType GetTileType(Vector2Int tilePos) { return(GetTileType(PositionMath.TilePositionToGridPosition(tilePos))); }
public void ShowMoveRange(CharacterLogic logic) { PositionMath.InitActionScope(logic.Info.Camp, logic.GetMoveClass(), logic.GetMovement(), logic.GetTileCoord(), logic.GetSelectRangeType(), logic.GetSelectRange()); pathShower.ShowTiles(PathShower.EPathShowerType.Move, PositionMath.MoveableAreaPoints); pathShower.ShowTiles(PathShower.EPathShowerType.Damage, PositionMath.AttackAreaPoints, true, false); }
public void OnEvent() { EnemyController.enemies.Add(GameObject.Instantiate(Resources.Load("Prefabs/Monsters/" + enemyName), PositionMath.findLocationToSpawn(0), Quaternion.identity) as GameObject); }