private IEnumerator ChooseRandomResourceAsync(IOut <GameObject> result)
        {
            for (int i = 0; i < drillable.resources.Length; i++)
            {
                Drillable.ResourceType resourceType = drillable.resources[i];

                if (resourceType.chance >= 1f)
                {
                    CoroutineTask <GameObject> task = CraftData.GetPrefabForTechTypeAsync(resourceType.techType, true);
                    yield return(task);

                    result.Set(task.GetResult());
                    break;
                }
                if (Player.main.gameObject.GetComponent <PlayerEntropy>().CheckChance(resourceType.techType, resourceType.chance))
                {
                    CoroutineTask <GameObject> task = CraftData.GetPrefabForTechTypeAsync(resourceType.techType, true);
                    yield return(task);

                    result.Set(task.GetResult());
                    break;
                }
            }
            yield break;
        }
Ejemplo n.º 2
0
        public GameObject ChooseRandomResource()
        {
            GameObject result = null;

            for (int i = 0; i < resources.Length; i++)
            {
                Drillable.ResourceType resourceType = resources[i];
                if (resourceType.chance >= 1f)
                {
                    result = CraftData.GetPrefabForTechType(resourceType.techType, true);
                    break;
                }
                PlayerEntropy component = Player.main.gameObject.GetComponent <PlayerEntropy>();
                if (component.CheckChance(resourceType.techType, resourceType.chance))
                {
                    result = CraftData.GetPrefabForTechType(resourceType.techType, true);
                    break;
                }
            }
            return(result);
        }