public void Attack(CharStats target) { if (atkCoolDown <= 0) { target.TakeDamage(statsSelf); atkCoolDown = 100f / statsSelf.atkSpeed.GetValue(); } }
IEnumerator DoDamage(CharStats stats, float delay) { yield return(new WaitForSeconds(delay)); stats.TakeDamage(myStats.damage.GetValue()); //SFXPlaying.instance.PlaySound (SFXPlaying.instance.Attack); AudioManager.instance.PlaySound("EnemySound", transform.position); }
IEnumerator DoDamage(CharStats stats, float delay) { yield return(new WaitForSeconds(delay)); stats.TakeDamage(myStats.damage.GetValue()); if (stats.currentHealth <= 0) { InCombat = false; } }
// Update is called once per frame void Update() { agent.SetDestination(target.position); float distance = Vector3.Distance(target.position, transform.position); if (distance <= attackRadius && !deliveredAttack) { deliveredAttack = true; CharStats stats = target.GetComponent <CharStats>(); anim.Play("Warrior_Attack"); stats.TakeDamage(100); } }
private void attack() { if (isActiveAndEnabled) { if (!isCasting) { isCasting = true; flash(); Vector3 AttackToPlayer = player.transform.position - transform.position; float distance = AttackToPlayer.magnitude; if (distance < attackRadius) { charStats.TakeDamage(10); } } else { isCasting = false; } } }
void shootLaser() { RaycastHit2D hitPlayer = Physics2D.Raycast(transform.position, transform.right, defDistanceRay, 0x1 << LayerMask.NameToLayer("Player")); RaycastHit2D hitObstacles = Physics2D.Raycast(transform.position, transform.right, defDistanceRay, 0x1 << LayerMask.NameToLayer("obstacles")); if (hitPlayer.collider != null) { draw2DRay(firePoint.position, hitPlayer.point); //Makes player take damage charStats.TakeDamage(1); } else if (hitObstacles.collider != null) { draw2DRay(firePoint.position, hitObstacles.point); } else { draw2DRay(firePoint.position, firePoint.transform.right * defDistanceRay); } }
void Shoot() { GameObject player = GameObject.Find("Player"); //Vector2 v = new Vector2(player.transform.position.x - transform.position.x, player.transform.position.y - transform.position.y); //float distance = v.magnitude; int mask = (1 << LayerMask.NameToLayer("Player")) | (1 << LayerMask.NameToLayer("obstacles")); RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.right, Mathf.Infinity, mask); //Debug.Log(hit.collider.gameObject.name); if (hit.collider.gameObject.tag == "Player") //&& distance < maxDistance { CharStats charstats = hit.collider.gameObject.GetComponent <CharStats>(); charstats.TakeDamage(damage); lineRenderer.SetPosition(0, firePoint.position); lineRenderer.SetPosition(1, hit.point); lineRenderer.enabled = true; } else { lineRenderer.enabled = false; } }
IEnumerator DoDamage(CharStats stats, float delay) { yield return(new WaitForSeconds(delay)); stats.TakeDamage(myStats.damage.GetValue()); }