Example #1
0
    public IEnumerator gatherResources(string resourceName)
    {
        if (!gatheringResource)
        {
            gatheringResource = true;
            ResourceAttributes closestResource = null;
            IEnumerator        coroutine       = null;

            if (resourceName.Equals("StoneDepot") && findClosestResource(stoneDepotsInRange) != null)
            {
                closestResource = findClosestResource(stoneDepotsInRange);
            }
            if (resourceName.Equals("Tree") && findClosestResource(treesInRange) != null)
            {
                closestResource = findClosestResource(treesInRange);
            }
            if (closestResource != null)
            {
                StartCoroutine(coroutine = closestResource.walkingToResource(this));
            }

            while (gatheringResource)
            {
                if (closestResource == null)
                {
                    break;
                }
                if (closestResource.getGatheringResourcesRunning() && this.getResourceBeingMined() != closestResource)
                {
                    StopCoroutine(coroutine);
                    break;
                }
                yield return(null);
            }
            gatheringResource = false;
        }
    }