2021-04-11 17:09:57 +02:00
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
|
2021-04-21 14:14:14 +02:00
|
|
|
public abstract class AbstractWeapon : IWeapon
|
2021-04-11 17:09:57 +02:00
|
|
|
{
|
|
|
|
|
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) { }
|
2021-04-21 14:14:14 +02:00
|
|
|
public abstract void Reload(int amount);
|
2021-04-25 02:07:37 +02:00
|
|
|
public abstract void Destroy();
|
2021-04-11 17:09:57 +02:00
|
|
|
}
|
|
|
|
|
}
|