public void OnRepaired(bool obj)
 {
     if (obj && brokenCycleBehaviour != null)
     {
         brokenCycleBehaviour.RushAhead();
     }
     else if (!obj && brokenCycleBehaviour != null)
     {
         brokenCycleBehaviour.FallDown();
     }
     distanceSlider.value     = 1;
     brokenCycleBehaviour     = null;
     pursuitOn                = true;
     repairMaster.OnRepaired -= OnRepaired;
     if (UnityEngine.Random.Range(0, 2) == 0)
     {
         snowParticleSystem.Stop();
         rainParticleSystem.Play();
     }
     else
     {
         rainParticleSystem.Stop();
         snowParticleSystem.Play();
     }
     StartCoroutine(ReachTillCycleCoroutine());
 }
    IEnumerator ReachTillCycleCoroutine()
    {
        distanceSlider.maxValue = currentWait;
        distanceSlider.value    = 1;
        while (pursuitOn)
        {
            yield return(new WaitForSeconds(1));

            distanceSlider.value++;

            if (distanceSlider.value >= currentWait)
            {
                pursuitOn = false;
            }
        }
        Debug.Log("Caught up to cycle");
        obstacleSpawner.BlockRow(brokenCycleSpawnPoint);
        brokenCycleBehaviour = Instantiate(brokenCycle, brokenCycleSpawnPoint.position, Quaternion.identity).GetComponent <BrokenCycleBehaviour>();
        yield return(null);
    }