private IEnumerator DestroyPlayerUnits() { for (;;) { if (unitBundlesInArea.Count > 0) { foreach (GameObject unitBundle in unitBundlesInArea) { if (unitBundle) { TravellingUnit units = unitBundle.GetComponent <TravellingUnit>(); if (units.NumberOfUnits > 0) { units.DestroyUnits(1); } else if (units.NumberOfUnits <= 0) { flaggedForRemoval.Add(unitBundle); } } } foreach (GameObject objectToRemove in flaggedForRemoval) { unitBundlesInArea.Remove(objectToRemove); Destroy(objectToRemove); } flaggedForRemoval.RemoveAll(delegate(GameObject o) { return(o == null); }); yield return(new WaitForSeconds(0.8f)); } else { yield return(new WaitForSeconds(0.1f)); } } }
public void SendUnits(GameObject targetPlanet, GameObject planetOwner) { int unitsToRelease = (data.GetNumberOfUnits() / 2); data.ReleaseUnits(unitsToRelease); TravellingUnit units = Instantiate(travellingUnitsPrefab, this.gameObject.transform.position, Quaternion.identity).GetComponent <TravellingUnit>(); units.Initialize(unitsToRelease, data.GetOwner(), targetPlanet, 10.0f * (1 + planetOwner.GetComponent <PlayerData>().UnitSpeedModifier)); }
public void Initialize(TravellingUnit tUnit) { unitNameText.text = tUnit.unit.unitName; destinationText.text = tUnit.destination.placeName; turnText.text = Mathf.Clamp(tUnit.turnsToArrival, 0, Mathf.Infinity).ToString(); }