/*!
* @file GameLogger.h
* @brief GameLoggerクラスのプロトタイプ
* @date 2013/07/06
* @author Deskull
* 2014 Sikabane Works.
*/

#pragma once

#include "stdafx.h"
#include "Deeangband.h"
#include "GameMessage.h"

namespace Deeangband
{

	/*! 
	* @class GameLogger
	* @brief ゲームログ管理クラス
	*/
	class GameLogger
	{
	protected:
		std::ofstream ofs;
		std::vector<std::shared_ptr<GameMessage>> gameMessages; //!< ゲームログ配列

	public:

		/*!
		 * @brief GaneLoggerクラスコンストラクタ
		 */
		GameLogger::GameLogger(void);

		/*!
		 * @brief GaneLoggerクラスデストラクタ
		 */
		GameLogger::~GameLogger(void);

		/*!
		 * @brief ログメッセージを出力する
		 * @param 出力文字列
		 * @return なし
		 */
		void GameLogger::PutLog(std::string log);

		/*!
		 * @brief クリーチャーの移動を記録する。
		 * @param creatureID 移動したクリーチャーのID
		 * @param name 移動したクリーチャーの名前
		 * @param dir 移動した方向
		 * @return なし
		 */
		void GameLogger::CreatureMoved(ID creatureID, NAME name, DIRECTION dir);

		/*!
		 * @brief クリーチャーの白兵処理開始を記録する
		 * @param attackerName 攻撃側クリーチャーの名前
		 * @param targetName 防御側クリーチャーの名前
		 * @return なし
		 */
		void GameLogger::CreaturesCombated(NAME attackerName, NAME targetName);

		//this->gameMessages.emplace_back(std::make_shared<GameMessage>(message, type));

	};
}