/**
 * \file CoachMemory.h
 * \date 07.12.2002
 *
 * Interface for the CoachMemoryInterface class
 */

#ifndef INTERFACES_COACHMEMORY_H
#define INTERFACES_COACHMEMORY_H

#include "Common/Interfaces/Interface.h"
#include "Common/World/ParamStructs.h"
#include "Common/World/Types.h"
#include "Common/Support/DynArray.h"

/**
 * \class CoachMemoryInterface
 * \author Peter Trebaticky
 * \brief Coach memory task interface
 * 
 * Memory task stores information about the environment
 * of the system
 */

class CoachMemoryInterface : public Interface
{
public:
	// Construction and destruction
	CoachMemoryInterface() : Interface("Coach Memory Interface", "v0.0.01") {}
	virtual ~CoachMemoryInterface() {}

	// Interface functions
	virtual int GetSimTime() const = 0;
	virtual PlayMode GetPlayMode() const = 0;

	/// \return our score
	virtual unsigned GetOurScore() const = 0;
	/// /return opponent score
	virtual unsigned GetTheirScore() const = 0;

	/// \param number player number
	/// \return player type
	virtual int GetTypeByNumber(unsigned number) const = 0;

	/// \param side which side is our team playing on
	virtual void OnInit(bool side) = 0;

protected:

private:

};

#endif // INTERFACES_COACHMEMORY_H
