Beispiel #1
0
    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);
        }
    }
Beispiel #2
0
    IEnumerator ChangeOrganRoutine(int id)
    {
        if (activeOrganID != id && organTypes[activeOrganType].organs[id].unlocked)
        {
            cellSpawner.DestroyCells();
            activeOrganID = id;
            yield return(new WaitForSeconds(1f));

            cellSpawner.InstantiateCells();
        }
    }