public override void ClearBoard() { base.ClearBoard(); for (int x = 0; x < pieces.GetLength(0); x++) { for (int y = 0; y < pieces.GetLength(1); y++) { PiecePool.DestroyPiece(pieces [x, y]); } } pieces = new Piece[0, 0]; }
protected virtual IEnumerator DestroyCoroutine(System.Action <Piece> onComplete, float delay = 0) { if (delay > 0) { yield return(new WaitForSeconds(delay)); } state = PieceState.Destroyed; transform.DOScale(Vector3.one * 0.5f, AnimationSettings.DestroyTime).SetEase(Ease.InBack); yield return(new WaitForSeconds(AnimationSettings.DestroyTime * destructionTimePercentage)); onComplete.Invoke(this); yield return(new WaitForSeconds(AnimationSettings.DestroyTime * (1 - destructionTimePercentage))); PiecePool.DestroyPiece(this); }