34 lines
807 B
C#
34 lines
807 B
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
namespace Pathfinding.Examples.RTS {
|
|
[HelpURL("https://arongranberg.com/astar/documentation/stable/rtsweapon.html")]
|
|
public class RTSWeapon : MonoBehaviour {
|
|
public bool ranged;
|
|
public float range;
|
|
public float cooldown;
|
|
public float attackDuration;
|
|
public bool canMoveWhileAttacking = false;
|
|
|
|
float lastAttackTime = float.NegativeInfinity;
|
|
|
|
public virtual bool Aim (RTSUnit target) {
|
|
return Time.time - lastAttackTime >= cooldown;
|
|
}
|
|
|
|
public bool isAttacking {
|
|
get {
|
|
return Time.time - lastAttackTime < attackDuration;
|
|
}
|
|
}
|
|
|
|
public bool InRangeOf (Vector3 point) {
|
|
return (transform.position - point).sqrMagnitude < range*range;
|
|
}
|
|
|
|
public virtual void Attack (RTSUnit target) {
|
|
lastAttackTime = Time.time;
|
|
}
|
|
}
|
|
}
|