using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using EvilSatellites.Objects; using Microsoft.Xna.Framework; namespace EvilSatellites.Weapons { public enum WeaponState { Stopped, Starting, Firing, Stopping } public class AbstractWeapon : IWeapon { public IGameObject _wielder; public float FireRate { get; set; } public int MaxAmmo { get; set; } public int RemainingAmmo { get; set; } public WeaponState State { get; set; } public double TimerStart; public double TimerEnd; public virtual void Shoot(GameTime time) { } public virtual void Reload() { } public virtual void Stop() { } public virtual void Update(GameTime time) { } } }