/***************************************************************/
//
//
//		DirectX	[AI.cpp]
//
//										Author	kazuki tanaka
//										Date	2016 07/13
/*---------------------------------------------------------------
■Update : 2016/07/13
			ai.cppの作成

■Update : 2016/07/14
			各オブジェクトのupdate関数の中に書くものとして想定

/*---------------------------------------------------------------
	インクルードファイル
---------------------------------------------------------------*/
#include "artificial_intelligence.h"
#include "main.h"
#include "enemy.h"
#include "bullet.h"
#include "game_equation.h"

#include "player.h"		// 敵がプレイヤーの所在を知っているときなどに使用
						// システム的な判断で距離を計測する際にも使用

/*---------------------------------------------------------------
	マクロ定義
---------------------------------------------------------------*/
/*---------------------------------------------------------------
	定数定義
---------------------------------------------------------------*/

// 関数ポインタの型名
typedef void (*MadeFunc)( void );


/*---------------------------------------------------------------
	グローバル変数
---------------------------------------------------------------*/


// 標準的AI
void Default_AI ( const LPD3DXVECTOR2 center , const float *length, int loopCount )
{

	const int STRSIZE = 125 ;
	char str[ STRSIZE ];

	float distance;				// 距離計測
	float distance1 = 0;
	float distance2 = 0;
	float distance3 = 0;
	float distance4 = 0;

	// 関数ポインタの宣言
	
	// デフォルトの行動
	MadeFunc pAI_defaultBehavior[] ={
		AI_Attack,
	};
	

	// プレイヤーとCPUとの距離計測
	//distance = (( player ->center.x - center ->x ) * ( player ->center.x - center ->x )) * (( player ->center.y - center ->y ) * ( player ->center.y - center ->y ));


	// 指定距離を離れているCPUが自分を認識できない距離
	if( distance > ( distance1 * distance1 ) ){

		// playerを探す
	}

	// 指定距離を離れている
	if( distance > ( distance2 * distance2 )){
	
		// playerに向かう 
	}

	// 
	if( distance > ( distance3 * distance3 ) ){
	
		// playerの背後を取るように動く
	}

	// 
	if( distance > ( distance4 * distance4 ) ){
	
		// playerに攻撃
	}

}

// カスタムするAI
void Custom_AI ( const LPD3DXVECTOR2 center , const float *length, int loopCount )
{

	//距離のポインタと格納数を与えるカウント変数でAIの動きを4パターンに納めない
	//正に自分でカスタムすることが可能なAI
	//AIがどの動きをするのかもint型の配列(AI_tableなるものを作成)で渡す

	const int STRSIZE = 125 ;
	char str[ STRSIZE ];

	float distance;				// 距離計測
	float distance1 = 0;
	float distance2 = 0;
	float distance3 = 0;
	float distance4 = 0;	
	
	//str[loopCount] = length[loopCount]; 

}
