/*

	a01f_tale.h

		リフレッシュルーム（スネークテイルズ用）

	2002/06/08 S.Kaneyoshi

	$Id: a01f_tale.h,v 1.17 2002/10/02 09:04:16 usr04249 Exp $

*/



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



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

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

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

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

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

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

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

	}



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

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

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

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



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

		command マップ設定 １Ｆリフレッシュルーム -set {

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

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

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

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

			@ポーズ時ステージ名表示設定 d:wn_船橋一階リフレッシュルーム	// stdproc.h

		}



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

		command マップ設定 １Ｆリフレッシュルーム -set {

			@スネークテイルズ用リフレッシュルームアイテム設置

			@スネークテイルズ用エンジンルーム前コンテナ塞ぎ

		}

	}



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

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

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



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

		#if d:DEBUG_PRINT

			print 'sound_set-bomb_misson'

		#endif



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

		//@サウンド効果音設定

		if( $f:壊れフラグ＿でかガラス ) {

			@ガラス割れ後サウンド設定

		} else {

			@サウンド効果音設定

		}

	}



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

		#if d:DEBUG_PRINT

			print 'bgm_set-bomb_misson'

		#endif

		chara ＢＧＭマネージャー ＢＧＭマネ

	}



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

// 変数の初期化と設定

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



	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] = 1;			// 左舷１Ｆ 水密ドア

		$$b:ドアフラグ[1] = 1;			// 右舷１Ｆ

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

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

		$$b:ドアフラグ[4] = 1;			// 右舷Ｂ１

		$$b:ドアフラグ[5] = 0;			// 左舷Ｂ１

		

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

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

	}



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

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

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

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

		#if d:DEBUG_PRINT

			print 'game clear'

		#endif

	}



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

// 敵兵の設定

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



// 右舷１Ｆ

#define ET_1_DEF_X		10250

#define ET_1_DEF_Y		0

#define ET_1_DEF_Z		-13000



// 左舷１Ｆ

#define ET_2_DEF_X		-4000

#define ET_2_DEF_Y		0

#define ET_2_DEF_Z		-12000



// 中央

#define ET_3_DEF_X		0

#define ET_3_DEF_Y		0

#define ET_3_DEF_Z		-15500





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

		#if d:DEBUG_PRINT

			print 'watcher_set-bomb_misson'

		#endif



		if( $s:登場ポイント == 居住区一階右舷からロード || \

			$s:登場ポイント == エンジンルーム右舷からロード ) {

			// 右座り兵

			@A_警備兵 敵兵:01 \

				1 \		// ルート

				0 \		// ノード

				d:ENE_STATUS_NORMAL \

				d:ET_1_DEF_X d:ET_1_DEF_Y d:ET_1_DEF_Z \

				１Ｆリフレッシュルーム

			// 左座り兵

			@A_警備兵 敵兵:02 \

				2 \		// ルート

				0 \		// ノード

				d:ENE_STATUS_NORMAL \

				d:ET_2_DEF_X d:ET_2_DEF_Y d:ET_2_DEF_Z \

				１Ｆリフレッシュルーム

		} else if(  $s:登場ポイント == 居住区一階左舷からロード || \

					$s:登場ポイント == エンジンルーム左舷からロード ) {

			// 右座り兵

			@A_警備兵 敵兵:01 \

				5 \		// ルート

				0 \		// ノード

				d:ENE_STATUS_NORMAL \

				d:ET_1_DEF_X d:ET_1_DEF_Y d:ET_1_DEF_Z \

				１Ｆリフレッシュルーム

			// 左座り兵

			@A_警備兵 敵兵:02 \

				6 \		// ルート

				0 \		// ノード

				d:ENE_STATUS_NORMAL \

				d:ET_2_DEF_X d:ET_2_DEF_Y d:ET_2_DEF_Z \

				１Ｆリフレッシュルーム

		} else {

			@A_警備兵 敵兵:01 \

				7 \		// ルート

				0 \		// ノード

				d:ENE_STATUS_NORMAL \

				d:ET_1_DEF_X d:ET_1_DEF_Y d:ET_1_DEF_Z \

				１Ｆリフレッシュルーム

				

			@A_警備兵 敵兵:02 \

				8 \		// ルート

				0 \		// ノード

				d:ENE_STATUS_NORMAL \

				d:ET_2_DEF_X d:ET_2_DEF_Y d:ET_2_DEF_Z \

				１Ｆリフレッシュルーム

		}

		

		// 巡回兵

		@A_警備兵 敵兵:03 \

			3 \		// ルート

			0 \		// ノード

			d:ENE_STATUS_NORMAL \

			d:ET_3_DEF_X d:ET_3_DEF_Y d:ET_3_DEF_Z \

			１Ｆリフレッシュルーム

	}



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

		#if d:DEBUG_PRINT

			print 'attacker_set-bomb_misson'

		#endif



		@A_攻撃兵 敵兵:61 \

			4 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_SHIELD



		@A_攻撃兵 敵兵:62 \

			4 \

			d:ENE_STATUS_NORMAL \

			d:ENE_EQUIP_TYPE_SHIELD

	}



	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 7000,3000,-3000 １Ｆリフレッシュルーム \

			-c 0,0,-6000 １Ｆリフレッシュルーム \

			-x [ghq_area_alert_voice:w01f] \

			-y [ghq_caution_voice:a01f] \

			-v [ene_tank_voice:06] \

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

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

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

			-h $i:標準警戒時間

	}





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

// スネークテイルズ用エンジンルーム前コンテナ塞ぎ

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

	proc スネークテイルズ用エンジンルーム前コンテナ塞ぎ {

		if( `@スネークテイルズ用コンテナチェック` ) {

			// コンテナ設置

			chara プットオブジェ コンテナ -m w01f_box -r 0 0 0 -p 0 0 0 -l d:LT2_NAME -s 100 100 100



			// ゾーン変更

			command セットゾーンフラグ d:HZX_ZONE_ZINTRPT 11250 0 -19000

			// 跳弾当たり追加

			command 追加ＨＺＸグループ登録 -hzx_id 0 -add_id 1

		}

	}



	proc スネークテイルズ用コンテナチェック {

		if ( ( $b:ミッション番号 == d:MISSION:スネークテイルズ ) && \

			 ( $b:tales_story_no == d:TALES_NO:C ) && \

			 ( $b:tales_story_c < d:TALES_C:メリル遭遇終了 ) ) {

			return 1;

		} else {

			return 0;

		}

	}





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

// アイテム関連

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



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

		// 雑誌１

		if( $:ボックス名 == 雑誌１ ) {

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

		}

		// 雑誌２

		if( $:ボックス名 == 雑誌２ ) {

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

		}

		// 雑誌３

		if( $:ボックス名 == 雑誌３ ) {

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

		}

		// ＡＫＳ弾

		if( $:ボックス名 == ＡＫＳ弾 ) {

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

		}

		// Ｍ４弾

		if( $:ボックス名 == Ｍ４弾 ) {

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

		}

	}



	proc スネークテイルズ用リフレッシュルームアイテム設置 {

		// 雑誌１

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

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

			@雑誌_初期設置 雑誌１ -7250 0 -15750 d:アイテム水飛沫無

		}

		// 雑誌２

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

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

			@雑誌_初期設置 雑誌２ -8500 0 -18250 d:アイテム水飛沫無

		}

		// 雑誌３

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

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

			@雑誌_初期設置 雑誌３ -8750 0 -16500 d:アイテム水飛沫無

		}

		// ＡＫＳ弾

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

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

			@弾薬_ＡＫＳ_初期設置 ＡＫＳ弾 -12500 -5000 -11900 d:アイテム水飛沫無

		}

		// Ｍ４弾

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

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

			@弾薬_Ｍ４_初期設置 Ｍ４弾 -11800 -5000 -10650 d:アイテム水飛沫無

		}

		

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

		@ＡＫＳ_初期設置 ＡＫＳ本体 8750 0 -19000 d:アイテム水飛沫無 なし

		/*

			a01c へ移動 → a03a へ移動

		@ＡＫサプレッサ_初期設置 ＡＫＳサプレッサ 12500 -5000 -10750 d:アイテム水飛沫無

		*/

		

	}





