36 lines
948 B
C#
36 lines
948 B
C#
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 abstract 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) { }
|
|
public abstract void Reload(int amount);
|
|
public abstract void Destroy();
|
|
}
|
|
}
|