private IEnumerator Spawning_Co() { while (BattleManagerScript.Instance.CurrentBattleState != BattleState.Battle) { yield return(new WaitForEndOfFrame()); } while (!CoStopper) { float timer = 0; float spawningTime = Random.Range(SpawningTimeRange.x, SpawningTimeRange.y); while (timer <= spawningTime) { while (spawningCoPaused) { yield return(null); } yield return(BattleManagerScript.Instance.PauseUntil()); timer += Time.fixedDeltaTime; } ScriptableObjectItemPowerUps nextItemPowerUp = SOItemsPowerUps[Random.Range(0, SOItemsPowerUps.Count)]; ItemsPowerUPsInfoScript item = SpawnedItems.Where(r => !r.gameObject.activeInHierarchy).FirstOrDefault(); if (item == null) { item = Instantiate(ItemGO, transform).GetComponent <ItemsPowerUPsInfoScript>(); SpawnedItems.Add(item); } item.gameObject.SetActive(true); item.SetItemPowerUp(nextItemPowerUp, GridManagerScript.Instance.GetFreeBattleTile(WalkingSideType.LeftSide).transform.position); } }
public void SpawnPowerUpAtGridPos(ScriptableObjectItemPowerUps powerUp, Vector2Int pos) { ItemsPowerUPsInfoScript item = SpawnedItems.Where(r => !r.gameObject.activeInHierarchy).FirstOrDefault(); if (item == null) { item = Instantiate(ItemGO, transform).GetComponent <ItemsPowerUPsInfoScript>(); SpawnedItems.Add(item); } item.gameObject.SetActive(true); item.SetItemPowerUp(powerUp, GridManagerScript.Instance.GetBattleTile(pos).transform.position); }