#pragma once
#include <iostream>
#include <string>
#include <vector>
#include "FighterInterface.h"
using namespace std;

/*
	WARNING: It is expressly forbidden to modify any part of this document, including its name
*/
class ArenaInterface
{
	public:
		ArenaInterface(){}
		virtual ~ArenaInterface(){}
		
		/*
			addFighter(string)

			Adds a new fighter to the collection of fighters in the arena. Do not allow 
			duplicate names.  Reject any string that does not adhere to the format 
			outlined in the lab specs.

			Return true if a new fighter was added; false otherwise.
		*/
		virtual bool addFighter(string info) = 0;

		/*
			removeFighter(string)

			Removes the fighter whose name is equal to the given name.  Does nothing if 
			no fighter is found with the given name.

			Return true if a fighter is removed; false otherwise.
		*/
		virtual bool removeFighter(string name) = 0;
		
		/*
			getFighter(string)

			Returns the memory address of a fighter whose name is equal to the given 
			name.  Returns NULL if no fighter is found with the given name.

			Return a memory address if a fighter is found; NULL otherwise.
		*/
		virtual FighterInterface* getFighter(string name) = 0;
		
		/*
			getSize()

			Returns the number of fighters in the arena.

			Return a non-negative integer.
		*/
		virtual int getSize() = 0;
};
