/*

	a00a_tale.h

		（スネークテイルズ用）

	2002/06/08 S.Kaneyoshi

	$Id: a00a_tale.h,v 1.16 2002/10/02 09:04:15 usr04249 Exp $

*/



#define MISSION_TALE	1	// スネークテイルズ用プロック起動用



/**************************************************************************************/

// chara マップの前に呼ばれるproc

/**************************************************************************************/

	proc スネークテイルズ用マップ定義前設定 {

		// 共通システムの起動 $:クリア条件フラグ $:途中ステージフラグ(テイルズでは関係ない)

		@全ミッション共通システム設定 0

		command セットルートオフセット d:SCN:スネークテイルズ -c d:SCN:通常

	}



/*************************************************************************************/

// chara マップの後に呼ばれるproc

/*************************************************************************************/

	proc スネークテイルズ用マップ定義後設定 {

		@ポーズ時ステージ名表示設定 d:wn_船尾甲板

		

		// 全マップ共通基本キャラ設定

		command マップ設定 甲板 -set {

			@スネークテイルズ用サウンド設定

			@スネークテイルズ用変数設定

			@スネークテイルズ用コマンダー設定

			@スネークテイルズ用待機所変更			// コマンダーの設定後にセットする

			@スネークテイルズ用ＢＧＭ設定			// プレイヤー→敵兵→BGMの順で呼ぶ

			@スネークテイルズ用アイテム設置

		}



		// 各マップで使用するキャラの設定(アイテム等)

		command マップ設定 甲板 -set {

		}

	}



/*************************************************************************************/

// クリアしたときの処理(空でＯＫ)

/*************************************************************************************/

	proc スネークテイルズ用クリア時処理 {

		#if d:DEBUG_PRINT 

			print 'clear'

		#endif

	}



/*************************************************************************************/

// サウンドに関する設定

/*************************************************************************************/

	proc スネークテイルズ用サウンド設定 {

		#if d:DEBUG_PRINT

			print 'sound_set-bomb_misson'

		#endif



		chara サウンドマネージャー ＳＤマネ -pak 0

		@サウンド効果音設定

	}

	

	proc スネークテイルズ用ＢＧＭ設定 {

		#if d:DEBUG_PRINT

			print 'bgm_set-bomb_misson'

		#endif



		chara ＢＧＭマネージャー ＢＧＭマネ -s 0x00000001



		chara ＢＧＭ風音 風音



		//Track0x06 …雨、屋根当たり音[場所に貼る]

		chara ＢＧＭフェーダー 雨屋根当たり音 \

			-t 0x06 \

			-a -13500,4000,-12000 1500,1000,4000 w00a \	//左舷救命ボート

				13500,4000,-12000 1500,1000,4000 w00a \	//右舷救命ボート

				-4000,1000,16500 2000,1000,1500 w00a \	//左舷ウインチ

				4000,1000,16500 2000,1000,1500 w00a		//右舷ウインチ



		//Track0x07 …雨、鉄板系当たり音[場所に貼る]

		chara ＢＧＭフェーダー 雨鉄板系当たり音 \

			-t 0x07 \

			-a -9000,7000,-6000 2000,1000,2000 w00a \	//左舷アンテナ

				9000,7000,-6000 2000,1000,2000 w00a \	//右舷アンテナ

				-11500,1500,-4500 1500,2000,1000 w00a \	//左舷１Ｆ階段

				11500,1500,-4500 1500,2000,1000 w00a \	//右舷１Ｆ階段

				-7500,1000,6000 1000,2000,1000 w00a \	//左舷１Ｆ階段南

				7500,1000,6000 1000,2000,1000 w00a \	//右舷１Ｆ階段南

				-10000,3000,1500 2000,1000,2000 w00a \	//左舷クレーンそば

				10000,3000,1500 2000,1000,2000 w00a		//右舷クレーンそば





		//Track0x08 …雨、床当たり音[鳴らない場所を指定、ステータスに 0x0003 を指定]

		chara ＢＧＭフェーダー 雨床当たり音 \

			-t 0x08 \

			-a -16000,1000,-11500 4000,1000,6500 w00a \	//左舷下

				16000,1000,-11500 4000,1000,6500 w00a \	//右舷下

			-s 0x0003

	}



/*************************************************************************************/

// 変数初期化

/*************************************************************************************/



	proc スネークテイルズ用変数設定 {

		#if d:DEBUG_PRINT

			print 'stage_var_set-bomb_misson'

		#endif

		//------------------------------------------------------------

		// ドアに関する設定

		//		DOOR_FLAG_CLOSE			0		// 絶対開かない

		//		DOOR_FLAG_OPEN			1		// 絶対開く

		//		DOOR_FLAG_ENEMY_ONLY	2		// 敵兵のみ開く

		//		DOOR_FLAG_CLOSE_LEVEL	3		// カードレベルが足りなくて開かない

		//		DOOR_FLAG_OPEN_LEVEL	4		// カード持っているので開く

		//------------------------------------------------------------

		$$b:ドアフラグ[0] = d:DOOR_FLAG_CLOSE	// 右舷１Ｆ

		$$b:ドアフラグ[1] = d:DOOR_FLAG_CLOSE	// 右舷２Ｆ

		$$b:ドアフラグ[2] = d:DOOR_FLAG_OPEN	// 左舷１Ｆ

		$$b:ドアフラグ[3] = d:DOOR_FLAG_CLOSE	// 左舷２Ｆ

		

		// テイルズはレーダーＯＦＦ

		@レーダーオンオフチェック	0

	}





/**************************************************************************************/

// 敵兵の設定 

//		警備兵の名前は「敵兵:00」で統一

//		アタッカーの名前は「攻撃兵」で統一

/**************************************************************************************/

// 甲板中央

#define ENE_T_01_DEF_X		0

#define ENE_T_01_DEF_Y		0

#define ENE_T_01_DEF_Z		9000



// 左舷 水密前

#define ENE_T_02_DEF_X		-9000

#define ENE_T_02_DEF_Y		0

#define ENE_T_02_DEF_Z		-4000



// 右舷 水密前

#define ENE_T_03_DEF_X		9000

#define ENE_T_03_DEF_Y		0

#define ENE_T_03_DEF_Z		-4000



// ３階

#define ENE_T_04_DEF_X		0

#define ENE_T_04_DEF_Y		6000

#define ENE_T_04_DEF_Z		6500







	proc スネークテイルズ用警備兵セット {

		#if d:DEBUG_PRINT

			print 'watcher_set-bomb_misson'

		#endif



		/***************************************/

		// 警備兵全員をトラップに引っかけるために

		// 名前を「敵兵」で統一する事

		

		// ３階

		@A_警備兵 敵兵:01 \

			3 \		// ルート

			0 \		// ノード

			( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

			d:ENE_T_04_DEF_X d:ENE_T_04_DEF_Y d:ENE_T_04_DEF_Z \

			甲板

		

		// ストーリーＣ スタート時の敵兵配置	

		if( $s:登場ポイント == スネークテイルズスタート ) {

			// １階中央

			@A_警備兵 敵兵:02 \

				1 \		// ルート

				0 \		// ノード

				( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

				d:ENE_T_01_DEF_X d:ENE_T_01_DEF_Y d:ENE_T_01_DEF_Z \

				甲板

			// １階左舷

			@A_警備兵 敵兵:03 \

				2 \		// ルート

				0 \		// ノード

				( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

				d:ENE_T_02_DEF_X d:ENE_T_02_DEF_Y d:ENE_T_02_DEF_Z \

				甲板

		} else {

			// １階右舷

			@A_警備兵 敵兵:02 \

				4 \		// ルート

				0 \		// ノード

				( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

				d:ENE_T_03_DEF_X d:ENE_T_03_DEF_Y d:ENE_T_03_DEF_Z \

				甲板

			// １階左舷と中央

			@A_警備兵 敵兵:03 \

				6 \		// ルート

				0 \		// ノード

				( d:ENE_STATUS_GUNLIGHT | d:ENE_STATUS_NIGHT_SIGHT ) \

				d:ENE_T_02_DEF_X d:ENE_T_02_DEF_Y d:ENE_T_02_DEF_Z \

				甲板

		}

		

		

	}



	proc スネークテイルズ用攻撃兵セット {

		#if d:DEBUG_PRINT

			print 'attacker_set-bomb_misson'

		#endif



		/***************************************/

		// 攻撃兵全員をトラップに引っかけるために

		// 名前を「攻撃兵」で統一する事

		@A_探索ルート付き攻撃兵 攻撃兵 \

			5 \

			9 \

			d:ENE_STATUS_GUNLIGHT \

			d:ENE_EQUIP_TYPE_NORMAL

	}



	proc スネークテイルズ用警備兵コマンダー {

		#if d:DEBUG_PRINT

			print 'wccomm_set-bomb_misson'

		#endif



		chara 警備コマンダー wccomm \

			-e { スネークテイルズ用警備兵セット }

	}



	proc スネークテイルズ用攻撃兵コマンダー {

		#if d:DEBUG_PRINT

			print 'atcomm_set-bomb_misson'

		#endif



		chara 攻撃コマンダー atcomm \

			//-status 	d:AT_COM_WARP \

			//-wait		180 \

			//-avoidwait	300 \

			-e { スネークテイルズ用攻撃兵セット }

	}



	proc スネークテイルズ用コマンダー設定 {

		#if d:DEBUG_PRINT

			print 'commander_set-bomb_misson'

		#endif



		chara コマンダー 敵兵セット \

			-w スネークテイルズ用警備兵コマンダー \

			-a スネークテイルズ用攻撃兵コマンダー \

			-s d:ENE_STAGE_VR_ANOTHER \

			-m $w:スタートアラートモード \

			-r -18500,0,-17000 甲板 \

				18500,0,-17000 甲板 \

			-c -8750,0,-2000 甲板 \

				8750,0,-2000 甲板 \

				0,6000,6500 甲板 \

				0,0,8500 甲板 \

			-x [ghq_area_alert_voice:w00a] \

			-y [ghq_caution_voice:a00a] \

			-v [ene_tank_voice:06] \

			-z $i:敵標準麻酔持続 \

			-o $i:敵標準気絶持続 \

			-b $w:敵標準再発生数 \

			-h $i:標準警戒時間

	}



/*************************************************************************************/

// スネークテイルズ用待機所変更プロック

/*************************************************************************************/



	proc スネークテイルズ用待機所変更 {

		if($i:プレイヤー位置Ｘ > 0){

			mesg コマンダー 敵兵セット 待機所替え 0

		}else{

			mesg コマンダー 敵兵セット 待機所替え 1

		}



		//以下は，甲板には傷の手当てをするところがないので、スネークの位置によって待機所を見えないところに変更する処理。

		trap ca000 d:PLAYER \

			-mask ？ \

			-exec {

				if($3 == 入る){

					//mesg 警備兵 敵兵:03 ルート変更 6 -6500 6000 7000 甲板

					if($4 > 0){

						mesg コマンダー 敵兵セット 待機所替え 0

					}else{

						mesg コマンダー 敵兵セット 待機所替え 1

					}

				}else{

					//mesg 警備兵 敵兵:03 ルート変更 3 -6500 6000 7000 甲板

					mesg コマンダー 敵兵セット 待機所替え 2

				}

			}





		trap ca009 d:PLAYER \

			-mask ？ \

			-exec {

				if($3 == 入る){

					if($4 > 0){

						mesg コマンダー 敵兵セット 待機所替え 0

					}else{

						mesg コマンダー 敵兵セット 待機所替え 1

					}

				}else{

					mesg コマンダー 敵兵セット 待機所替え 3

				}

			}



		// 攻撃兵はプレイヤーから見えない位置に移動する

		trap ca003 d:PLAYER \

			-mask 入る \

			-exec {

				if( $4 > 0 ){

					mesg アタッカー 攻撃兵 ルート変更 8

				}else{

					mesg アタッカー 攻撃兵 ルート変更 5

				}

			}

	}



/**************************************************************************************/

// アイテム関連

/**************************************************************************************/



	proc スネークテイルズ用アイテム取得時番号設定 $:ボックス名 {

		// レーション

		if($:ボックス名 == レーション) {

			eval($b:st_a00a_取得ロード回数[0] = $w:グローバルロード回数);

		}

		//チャフ

		if($:ボックス名 == チャフ) {

			eval($b:st_a00a_取得ロード回数[1] = $w:グローバルロード回数);

		}

	}



	proc スネークテイルズ用アイテム設置 {

		#if d:DEBUG_PRINT

			print 'locker room item set'

		#endif

		/*

		// レーション

		@アイテム再セットチェック $b:st_a00a_取得ロード回数[0]

		if ($f:再セットフラグ) {

			@レーション_初期設置 レーション 14500 3000 -16500 d:アイテム水飛沫無

		}

		*/

		// チャフ

		@アイテム再セットチェック $b:st_a00a_取得ロード回数[1]

		if ($f:再セットフラグ) {

			@チャフ_初期設置 チャフ -7500 6000 -8000 d:アイテム水飛沫有

		}

		

		// 自分で数をチェックするアイテム

		@A_濡れダンボール_初期設置 濡れダンボール 0,6000,5500 d:アイテム水飛沫有 3 // 3 = 耐久力

	}



