// Update is called once per frame void Update() { if (ApplianceRepairedEvent != null) { //Appliance appliance = ApplianceRepairedEvent(); ApplianceRepairedEvent = null; _applianceToFixIndex = _applianceToFixIndex < _appliances.Length - 1 ? _applianceToFixIndex + 1 : 0; _appliances[_applianceToFixIndex].SetBroken(); SetArrowPos(_appliances[_applianceToFixIndex].transform.position); playerScore++; UIManager.OnUpdateScore += () => playerScore; } _pressed_mushroom_key |= Input.GetKeyDown(KeyCode.T); if (_pressed_mushroom_key && !isMushroomMode && mushrooms > 0) { isMushroomMode = true; MushroomEffectChangeEvent?.Invoke(isMushroomMode); mushrooms--; Debug.Log("Mushroom time"); UIManager.OnUpdateMushroomCount += () => mushrooms; mushroomtimer = StartCoroutine(StartMushroomTimer()); } _pressed_mushroom_key = false; if (Input.GetKey("escape")) { Application.Quit(); } }
public void InterruptMushroomMode() { StopCoroutine(mushroomtimer); isMushroomMode = false; Debug.Log("Mushroom out, interrupt"); MushroomEffectChangeEvent?.Invoke(isMushroomMode); mushroomEffectTime = mushroomEffectDefaultTime; UIManager.OnUpdateMushroomTime += () => mushroomEffectTime; }
IEnumerator StartMushroomTimer() { while (mushroomEffectTime > 0) { mushroomEffectTime -= 1; UIManager.OnUpdateMushroomTime += () => mushroomEffectTime + 1; yield return(new WaitForSeconds(1)); UIManager.OnUpdateMushroomTime += () => mushroomEffectTime + 1; } UIManager.OnUpdateMushroomTime += () => 0; isMushroomMode = false; Debug.Log("Mushroom out, cr"); MushroomEffectChangeEvent?.Invoke(isMushroomMode); mushroomEffectTime = mushroomEffectDefaultTime; }