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; }
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); }