void Update() { timer += Time.deltaTime; if (fireBoltShot == true) { distance = fireBoltTrans.position - transform.position; if (distance.magnitude >= spellRange) { ResetFireBolt(); } } else if (fireBoltShot == false && fireBoltPS [1].isEmitting == true) { fireBoltTrans.position = collisionPoint; } else if (fireBoltShot == false && fireBoltPS [1].isEmitting == false) { ResetFireBolt(); } // Check if the player has pressed the fire button and if enough time has elapsed since they last fired if (Input.GetButton("Fire1") && timer > fireRate && !ShootFireBall.isCasting && playerMana.currentMana >= manaCost) { fireBoltTrans.position = transform.position; playerMana.ReduceMana(manaCost); fireBoltShot = true; timer = 0; Vector3 rayOrigin = fpsCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0.0f)); if (Physics.Raycast(rayOrigin, fpsCam.transform.forward, out hit, 25)) { targetVector = hit.point - transform.position; } else { targetVector = fpsCam.transform.position + fpsCam.transform.forward * spellRange - transform.position; } targetVector.Normalize(); fireBoltTrans.forward = targetVector; psRend.maxParticleSize = 0.5f; lightSource.enabled = true; fireBoltCollider.enabled = true; fireBoltAudio[0].Play(); fireBoltAudio [1].Stop(); fireBoltPS [0].Play(); fireBoltPS [1].Stop(); fireBoltRigid.velocity = targetVector * fireBoltSpeed; //Instantiate (fireBoltObject, Spells); } }
IEnumerator FireballCast(float time) { yield return(new WaitForSeconds(time)); mana.ReduceMana(manaCost); StartCoroutine(FireballCooldown(fireballCooldown)); ImageFiller.Instance.image.fillAmount = 1; ImageFiller.Instance.SetCooldown(fireballCooldown); Instantiate(fireballPrefab, transform.position, Quaternion.identity); TopDownMovementScript.Instance.isAllowedToMove = true; }
public void ShootFS() { flameStrikeShot = true; playerMana.ReduceMana(manaCost); isCasting = false; progressBar.SetActive(false); timer = 0; StartingPosition = flameStrikeTrans.position; lightSource.enabled = true; playerMovement.enabled = true; playerMovement.state = 0; orbControl.enabled = true; flameStrike.Play(); StartCoroutine(PlayPS(1.0f, 0.5f)); }
public void ShootFB() { playerMana.ReduceMana(manaCost); fireBallShot = true; isCasting = false; progressBar.SetActive(false); timer = 0; targetVector = fpsCam.transform.position + fpsCam.transform.forward * spellRange - transform.position; targetVector.Normalize(); fireBallTrans.forward = targetVector; lightSource.enabled = true; fireBallCollider.enabled = true; playerMovement.enabled = true; playerMovement.state = 0; orbControl.enabled = true; fireBallPS.Play(); fireBallRigid.velocity = targetVector * fireBallSpeed; }