public Planet GeneratePlanet(PlanetSize size) { var position = GetRandomPosition(); var category = GetRandomCategory(position); var planet = new Planet(position, size, category); return(planet); }
public Planet(Vector2 initialPosition, Allegiance allegiance, PlanetSize size, int numberOfMinions) : base(initialPosition, allegiance) { MinionIncrementPerSecond = Global.MinionIncrementPerSecond[size]; mSize = size; Shield = 0; MinionCount = numberOfMinions; mObstruction = new Obstruction(initialPosition, CollisionRadius); mVisibility = new Visibility(this); }
public static float SizeToMass(this PlanetSize size, float density) { switch (size) { // TODO: Planet sizes (floats) should be defined somewhere else case PlanetSize.Small: return(Mass(Area(128f / PixelsPerUnit))); case PlanetSize.Medium: return(Mass(Area(192f / PixelsPerUnit))); case PlanetSize.Large: return(Mass(Area(244f / PixelsPerUnit))); default: return(0f); } float Area(float radius) => radius * radius * Mathf.Pi; float Mass(float area) => area * density; }
private Planet CreatePlanet(Vector2 position, Allegiance allegiance, PlanetSize planetSize, int numberOfMinions) { var planet = mGameObjectFactory.CreatePlanet(position, allegiance, planetSize, numberOfMinions); AddUnit(planet); return planet; }
public Planet CreatePlanet(Vector2 position, Allegiance allegiance, PlanetSize size, int numberOfMinions) { var unit = new Planet(position, allegiance, size, numberOfMinions); return unit; }
public Planet(PolarPosition position, PlanetSize size, PlanetCategory category) { Position = position; Size = size; Category = category; }
public override void Initialize(bool bRandomize) { if (bRandomize) { int seed = UnityEngine.Random.Range (0, 8); Type = (PlanetType)seed; seed = UnityEngine.Random.Range (0, 5); Size = (PlanetSize)seed; Coordinates.Set (UnityEngine.Random.Range(-50f, 50f), UnityEngine.Random.Range(-50f, 50f)); } base.Initialize (bRandomize); switch (Type) { case PlanetType.Asteroid: { _baseModifiers.Fuel = 0f; _baseModifiers.Metal = UnityEngine.Random.Range (1.25f, 1.4f); _baseModifiers.Crystal = UnityEngine.Random.Range (.25f, .4f); _baseModifiers.Organic = 0; _initialRates = new GainRate (0f, 0f, 0f, 0f); break; } case PlanetType.Aquatic: { _baseModifiers.Fuel = UnityEngine.Random.Range (.8f, 1.1f); _baseModifiers.Metal = UnityEngine.Random.Range (.1f, .2f); _baseModifiers.Crystal = UnityEngine.Random.Range (.5f, .75f); _baseModifiers.Organic = UnityEngine.Random.Range (.5f, .75f); _initialRates = new GainRate (0f, 0f, .5f, 2f); break; } case PlanetType.Barren: { _baseModifiers.Fuel = 0f; _baseModifiers.Metal = UnityEngine.Random.Range (.5f, .75f); _baseModifiers.Crystal = UnityEngine.Random.Range (.1f, .2f); _baseModifiers.Organic = 0f; _initialRates = new GainRate (0f, 0f, 0f, 0f); break; } case PlanetType.Desert: { _baseModifiers.Fuel = UnityEngine.Random.Range (.8f, 1.1f); _baseModifiers.Metal = UnityEngine.Random.Range (.8f, 1.1f); _baseModifiers.Crystal = UnityEngine.Random.Range (.5f, .75f); _baseModifiers.Organic = UnityEngine.Random.Range (.1f, .2f); _initialRates = new GainRate (0f, 0f, 0f, 0f); break; } case PlanetType.Frozen: { _baseModifiers.Fuel = UnityEngine.Random.Range (.1f, .2f); _baseModifiers.Metal = UnityEngine.Random.Range (.1f, .2f); _baseModifiers.Crystal = UnityEngine.Random.Range (1.1f, 1.2f); _baseModifiers.Organic = 0f; _initialRates = new GainRate (0f, 0f, 0f, 0f); break; } case PlanetType.Gas: { _baseModifiers.Fuel = UnityEngine.Random.Range (1.4f, 1.6f); _baseModifiers.Metal = 0f; _baseModifiers.Crystal = 0f; _baseModifiers.Organic = 0f; _initialRates = new GainRate (.5f, 0f, 0f, 0f); break; } case PlanetType.Jungle: { _baseModifiers.Fuel = UnityEngine.Random.Range (1.1f, 1.2f); _baseModifiers.Metal = UnityEngine.Random.Range (.25f, .4f); _baseModifiers.Crystal = UnityEngine.Random.Range (.25f, .4f); _baseModifiers.Organic = UnityEngine.Random.Range (1.4f, 1.6f); _initialRates = new GainRate (2f, 0f, 1f, 5f); break; } case PlanetType.Terran: { _baseModifiers.Fuel = UnityEngine.Random.Range (.8f, 1.1f); _baseModifiers.Metal = UnityEngine.Random.Range (.8f, 1.1f); _baseModifiers.Crystal = UnityEngine.Random.Range (.8f, 1.1f); _baseModifiers.Organic = UnityEngine.Random.Range (.8f, 1.1f); _initialRates = new GainRate (4f, 4f, 4f, 4f); break; } case PlanetType.Volcanic: { _baseModifiers.Fuel = UnityEngine.Random.Range (1.1f, 1.2f); _baseModifiers.Metal = UnityEngine.Random.Range (1.25f, 1.4f); _baseModifiers.Crystal = UnityEngine.Random.Range (.25f, .4f); _baseModifiers.Organic = 0f; _initialRates = new GainRate (0f, 2f, 0f, 0f); break; } default: { _baseModifiers.Fuel = UnityEngine.Random.Range (0f, .1f); _baseModifiers.Metal = UnityEngine.Random.Range (0f, .1f); _baseModifiers.Crystal = UnityEngine.Random.Range (0f, .1f); _baseModifiers.Organic = UnityEngine.Random.Range (0f, .1f); _initialRates = new GainRate (0f, 0f, 0f, 0f); break; } } int _randomNum = -1; do { _randomNum = UnityEngine.Random.Range (0, Database.PlanetNames.Length - 1); } while (_selectedNames.Contains(_randomNum)); Name = Database.PlanetNames[_randomNum]; InteractRadius = ((int)Size + 1) * 2f; UpdateState += OnUpdateStateEvent; UpdateSecond += OnUpdateSecondEvent; CalcRates (); }