Hark-the-Moon-Men-Cometh / Assets / Scripts / Weapons / PlayerWeapon.cs
PlayerWeapon.cs
Raw
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);
    }
}