using UnityEngine;
[RequireComponent(typeof(AudioSource))]
public abstract class PlayerWeapon : MonoBehaviour
{
public PlayerAvatar r_owner;
//these are used to make sure the animator is playing the animation clips
//for *this* weapon
public AnimatorOverrideController m_controller;
public string m_animatorBoolName;
private AudioSource m_audioSource;
protected bool m_isAttacking;
protected virtual void Start()
{
m_audioSource = GetComponent<AudioSource>();
}
public virtual void Attack()
{
m_audioSource.Play();
}
public abstract void Reload();
public virtual bool IsAttacking()
{
return m_isAttacking;
}
public virtual void SetIsAttacking(bool attacking)
{
m_isAttacking = attacking;
}
public abstract void SecondaryHeld();
public abstract void SecondaryReleased();
public virtual void Equip()
{
r_owner.r_animator.runtimeAnimatorController = m_controller;
r_owner.r_animator.SetBool(m_animatorBoolName, true);
}
public virtual void UnEquip()
{
r_owner.r_animator.SetBool(m_animatorBoolName, false);
}
}