// Update is called once per frame private void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { Application.Quit(); } Vector3?inputPosition = null; if (Input.touches.Length == 0 && Input.GetMouseButtonDown(0) && !MainEventSystem.IsPointerOverGameObject()) { inputPosition = Input.mousePosition; } foreach (var touch in Input.touches) { if (touch.phase == TouchPhase.Began && !MainEventSystem.IsPointerOverGameObject(touch.fingerId)) { inputPosition = new Vector3(touch.position.x, touch.position.y, 0); break; } } if (inputPosition != null) { Ray camRay = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit floorHit; RaycastHit uiHit; if (!Physics.Raycast(camRay, out uiHit, Mathf.Infinity, IgnorePlayerSpell) && Physics.Raycast(camRay, out floorHit, Mathf.Infinity, FloorMask)) { var floor2Cam = Camera.main.transform.position - floorHit.point; var instantPos = floorHit.point + floor2Cam.normalized * 15; Spell.Clone(this, ElementController.Instance.GetParticle(Data.GetElement()), Data.GetSpellData(), instantPos, WaveManager.FindClosestMinion(instantPos), null); if (_audioManager) { _audioManager.PlaySpellCastingSound(Data.GetElement()); } } if (_shouldHandleDroppedMage) { HandleDroppedMage(); } } if (_startedUpgrading1) { if (_lastUpgradeTime1 > _autoUpgradeInterval1) { _lastUpgradeTime1 = 0; UpgradePlayer(); } else { _lastUpgradeTime1 += Time.deltaTime; } } if (_startedUpgrading2) { if (_lastUpgradeTime2 > _autoUpgradeInterval2) { _lastUpgradeTime2 = 0; UpgradeIdleGenerated(); } else { _lastUpgradeTime2 += Time.deltaTime; } } if (_currencyModifier != 1 && _currencyModifierEndTime < DateTime.Now) { _currencyModifier = 1; UIManager.CloseCurrencyBonus(); } if (_damageModifier != 1 && _damageModifierEndTime < DateTime.Now) { _damageModifier = 1; UIManager.CloseDamageBonus(); } }