IEnumerator MergeCells(List <GameObject> cellsToMerge, int cellType, bool midCellMerge) { Vector2 randomPosition = new Vector2(Random.Range(0.2f, 0.8f), Random.Range(0.2f, 0.8f)); Vector2 spawnPosition = Camera.main.ViewportToWorldPoint(randomPosition); GameObject cellMerger = Instantiate(merger, spawnPosition, Quaternion.identity); cellMerger.GetComponent <SpriteRenderer>().sprite = MergeSprites[cellType]; mergerReference = cellMerger; yield return(new WaitForSeconds(0.5f)); CellsReady = cellsToMerge.Count; for (int i = 0; i < cellsToMerge.Count; i++) { cellsToMerge[i].TryGetComponent(out Cell_Base cell_Base); cell_Base.combineTarget = cellMerger.transform.position; cell_Base.ToggleCollider(); cell_Base.StartMerge(); cell_Base.myCellMerger = this; } while (CellsReady > 0) { yield return(new WaitForSeconds(0.1f)); } for (int i = 0; i < cellsToMerge.Count; i++) { Destroy(cellsToMerge[i]); } cellsToMerge.Clear(); CellSpawner myCellSpawner = GameManager.gameManager.organManager.cellSpawner; if (midCellMerge) { Debug.Log("Cell with no info spawned"); //myCellSpawner.SpawnMedRedBloodCell(cellMerger.transform.position); myCellSpawner.InstantiateCells(cellMerger.transform.position, false, cellType, 1, true); myCellSpawner.CheckMedCellsMerge(cellType); } else { myCellSpawner.InstantiateCells(cellMerger.transform.position); myCellSpawner.CanBuyCell = true; } //LTDescr d = LeanTween.scale(cellMerger, new Vector3(cellMerger.transform.position.x * 1.2f, cellMerger.transform.position.y * 1.2f, 1), .4f).setEase(LeanTweenType.easeInExpo); LTDescr f = LeanTween.alpha(cellMerger, 0, .4f).setEase(LeanTweenType.easeInExpo); f.setOnComplete(DestroyMerger); void DestroyMerger() { Destroy(cellMerger); } }
IEnumerator ChangeOrganRoutine(int id) { if (activeOrganID != id && organTypes[activeOrganType].organs[id].unlocked) { cellSpawner.DestroyCells(); activeOrganID = id; yield return(new WaitForSeconds(1f)); cellSpawner.InstantiateCells(); } }