Example #1
0
    IEnumerator PushBack2Home(GameObject defeatedPawn)
    {
        cellMetaData.RemovePlayer(defeatedPawn);
        PlayerMetaData defeatedPMetaData = defeatedPawn.GetComponent <PlayerMetaData>();
        GameObject     homeCell          = defeatedPMetaData.homeCell;

        GameObject currCell = defeatedPMetaData.currCell;

        while (currCell != homeCell)
        {
            Vector3 desiredPosition = CreateBoard.NewPiecePosition(currCell);
            defeatedPawn.transform.position = Vector3.Lerp(defeatedPawn.transform.position,

                                                           desiredPosition, 1);

            currCell = currCell.GetComponent <CellMetaData>().GetPrevGameObj(defeatedPMetaData.myTeam);

            if (currCell == null)
            {
                currCell = homeCell;
            }

            // wasnt able to show smooth behvaviour using progress (t) & movementspeed in lerp
            // so used this.
            yield return(new WaitForSeconds(0.05f));
        }

        // Now formally adding defeated pawn to home cell

        homeCell.GetComponent <CellMetaData>().AddPlayer(defeatedPawn);
        runningProcesses--;
    }