IEnumerator DestroyAllTriggerTiles() { List <TriggerTile> allTriggerTiles = new List <TriggerTile>(65); bool keepLooking = true; while (keepLooking || !IsBoardStable) { allTriggerTiles.Clear(); boardData.ApplyActionToAll((boardPiece) => { TriggerTile tile = boardPiece.Tile as TriggerTile; if (tile != null && tile.IsDestructible && !tile.IsDestroying) { allTriggerTiles.Add(tile); } }); if (allTriggerTiles.Count > 0) { if (callFreeFallEvent) { callFreeFallEvent = false; OnFreeFall.RaiseEvent(); yield return(new WaitForSeconds(2f)); } int index = Random.Range(0, allTriggerTiles.Count); TriggerTile chosenTile = allTriggerTiles[index]; allTriggerTiles.RemoveAt(index); chosenTile.Destroy(); IsBoardStable = false; TryCheckStableBoard(); yield return(new WaitForSeconds(1.5f)); keepLooking = true; } else { keepLooking = false; yield return(null); } } }
private float var; //angle variance #endregion Fields #region Methods // Link a trigger tile public void LinkTile(Transform tile) { TTile = tile.GetComponent<TriggerTile>(); }
private void Start() { FallTile = GetComponent <TriggerTile>(); DropFloor = GetComponent <EffectOnDepressDropFloor>(); }
public void AddTrigger(TriggerTile trigger) { triggerTiles.Add(trigger); }