Beispiel #1
0
 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));
         }
     }
 }
Beispiel #2
0
    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();
 }