private void OnSpawningAnomalyTileLifeOver(GridTile tile) { tile.tileLifeOver -= OnSpawningAnomalyTileLifeOver; GridTile_SpawningStaticAnomaly anomalyTile = tile.GetComponent <GridTile_SpawningStaticAnomaly>(); AnomalyPatch parentPatch = anomalyTile.ParentPatch; int tileX = tile.tileX; int tileY = tile.tileY; ReplaceTile(tile, 4); parentPatch.AddTileToPatch(_currentGridInfo.gameGridTiles[tileX, tileY]); }
private IEnumerator AnomalySpreadingTimer() { while (true) { if (!GameManager.GameStarted) { yield return(new WaitForEndOfFrame()); continue; } if (_allAnomalyPatches.Count == 0) { break; } yield return(new WaitForSeconds(anomalySpreadTime)); int randomIndex = UnityEngine.Random.Range(0, _allAnomalyPatches.Count); AnomalyPatch targetPatch = _allAnomalyPatches[randomIndex]; GridTile randomTile = targetPatch.GetRandomNewTile(); if (randomTile == null) { continue; } int tileX = randomTile.tileX; int tileY = randomTile.tileY; ReplaceTile(randomTile, 5); GridTile newTile = _currentGridInfo.gameGridTiles[tileX, tileY]; GridTile_SpawningStaticAnomaly anomalyTile = newTile.GetComponent <GridTile_SpawningStaticAnomaly>(); anomalyTile.ParentPatch = targetPatch; newTile.tileLifeOver += OnSpawningAnomalyTileLifeOver; } }