#pragma once

namespace mechanics {
	class Attacker {
	public:
		Attacker() : mKillCount(0) {

		}

		virtual int killcount() const {
			return mKillCount;
		}

		void increaseKillcount() {
			mKillCount++;
		}

		virtual std::string title() const=0;

		virtual float attackPrecision() {
			return 0.0f;
		}

		virtual float attackDamage() {
			return 0.0f;
		}

		virtual float staggerBonus(float damage, float reducedDamage) {
			return 0.0f;
		}

	protected:
		int mKillCount;
	};
}