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); }
public void SetItemPowerUp(ScriptableObjectItemPowerUps itemPowerUpInfo, Vector3 pos) { ItemPowerUpInfo = itemPowerUpInfo; Icon.sprite = itemPowerUpInfo.Icon; transform.position = pos; if (DurationOnBattleFieldCo != null) { StopCoroutine(DurationOnBattleFieldCo); } DurationOnBattleFieldCo = DurationOnBattleField_Co(); StartCoroutine(DurationOnBattleFieldCo); Anim.SetBool("FadeInOut", true); }
public void SpawnPowerUpAtRandomPointOnSide(ScriptableObjectItemPowerUps powerUp, WalkingSideType side) { SpawnPowerUpAtGridPos(powerUp, GridManagerScript.Instance.GetFreeBattleTile(side).Pos); }