/*

	a42a_bomb.h

	ＡＧ・第一メタルハンガー（アナザーミッション用）



	2002/02/08 S.Mukaide

	$Id: a42a_bomb.h,v 1.17 2002/08/29 05:57:57 usr04249 Exp $





*/





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

// 各ミッション別で使用するdefine

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

#define	MISSION_BOMB	1	// 爆弾解体用プロック起動用



#define 天狗Ａ潜入視力１Ｆ  4600

#define 天狗Ａ潜入視力２Ｆ  4000

#define 天狗Ａ危険視力     12000







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

// a_mode.hで呼び出されるプロック

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

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

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

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

proc 爆弾解体ミッション用マップ定義前設定 {

	#if d:DEBUG_PRINT

		print 'proc_set1-bomb_misson'

	#endif



	if ( $f:爆弾解体ミッションＶＲウィンドウ表示フラグ == 0 ) {

		// 他のステージからロードしてきたときは前のステージのタイムを引き継ぐ

		$$i:ライデンタイム 				= $i:爆弾解体タイマー残り時間;

		$$i:スネークタイム 				= $i:爆弾解体タイマー残り時間;

		$$i:プリスキンタイム 			= $i:爆弾解体タイマー残り時間;

		$$i:タキシードスネークタイム 	= $i:爆弾解体タイマー残り時間;

		$$i:刀ライデンタイム 			= $i:爆弾解体タイマー残り時間;

		$$i:前作スネークタイム			= $i:爆弾解体タイマー残り時間;

	}



	// 共通システムの起動 (爆弾解体ミッションは共通で処理するようになったので引数は見なくなりました)

	@全ミッション共通システム設定 d:VR_GOAL_FREE



	// セレクトを押したときに出る説明

	@爆弾解体ミッションロード後用ＶＲウィンドウ設定



	// プレイヤーが動けるようになったらタイマーをスタートさせる処理

	@ロード時ＶＲタイマー処理



	$$i:ＶＲクリアフラグ = d:VRCLR_NO_RETRY;	// プログラムでＲＥＴＲＹをかけない

	@ＶＲクリア設定 p:load_alt_bomb_a01f p:load_alt_bomb_a41a



	if ( $s:選択プレイヤー == 前作スネーク ) {

		// 前作スネークのときのみレーダーをオフにする

		// レーダーの設定

		command メニュー設定 -node_access off

	}

}





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

// chara マップ設定、常駐キャラ設定の後に呼ばれるproc

// ※ command マップ設定をしないと全マップに登録されます。

/* このステージで使用されるマップ名

第一メタルハンガー

*/

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

proc 爆弾解体ミッション用マップ定義後設定 {

	#if d:DEBUG_PRINT

		print 'proc_set2-bomb_misson'

	#endif

	// プレイヤー起動後、ウインドウを表示するときはプレイヤーを消す

	if ( $f:爆弾解体ミッションＶＲウィンドウ表示フラグ == 1 ) {

		command プレイヤー消去キャラ

		// フラグはすぐに寝かす

		$f:爆弾解体ミッションＶＲウィンドウ表示フラグ = 0

	}



	// 全マップ共通で使用する基本キャラの設定

	command マップ設定 第一メタルハンガー -set {

		@爆弾解体ミッション用サウンド設定	// データは最初に呼ぶ

		@爆弾解体ミッション用変数設定		// ドアのスイッチなどの変数を設定

		@爆弾解体ミッション用コマンダー設定

		@爆弾解体ミッション用ＢＧＭ設定		// プレイヤー→敵兵→BGMの順で呼ぶ

		@爆弾解体ミッション用監視カメラ設置

		//@爆弾解体ミッション用アイテム設置



		@爆弾解体ミッション用解体Ｃ４設置

	}

}





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

// クリアしたときの処理

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

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 ＢＧＭマネージャー ＢＧＭマネ

}







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

// 変数に関する設定

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

proc 爆弾解体ミッション用変数設定 {

	#if d:DEBUG_PRINT

		print 'stage_var_set-bomb_misson'

	#endif



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

	// ドアに関する設定

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

	eval ($$b:ドアフラグ[0] = d:DOOR_FLAG_OPEN);	// 拷問部屋へのドア

	eval ($$b:ドアフラグ[1] = d:DOOR_FLAG_OPEN);	// 第一通路（丸通路）へのドア



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

	// 監視カメラに関する設定

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

	eval( $i:監視カメラ縦視野角 = 320 );

	eval( $i:監視カメラ横視野角 = 280 );

	eval( $w:監視カメラ通常視力 = 4500 );

	eval( $w:監視カメラ危険視力 = 4500 );

	eval( $w:監視カメラ警戒視力 = 4500 );

	eval( $w:監視カメラ回避視力 = 4500 );

	eval( $i:監視カメラ首振り待ち時間 = 0);

	eval( $i:監視カメラ緊急振り幅  = 0);



}







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

// 敵兵に関する設定

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

proc 爆弾解体ミッション用警備兵セット {

	#if d:DEBUG_PRINT

		print 'watcher_set-bomb_misson'

	#endif

	//	A_警備兵 $:名前 $:ルート $:ノード $:ステータス $:守備Ｘ $:守備Ｙ $:守備Ｚ $:守備マップ



}



proc 爆弾解体ミッション用攻撃兵セット {

	#if d:DEBUG_PRINT

		print 'attacker_set-bomb_misson'

	#endif

	//	A_攻撃兵 $:名前 $:ルート $:ステータス $:装備

	//	A_サポート攻撃兵 $:名前 $:ルート $:ステータス $:装備 $:サポートする敵兵名



}



proc 爆弾解体ミッション用天狗兵セット {

	#if d:DEBUG_PRINT

		print 'attacker_set-bomb_misson'

	#endif

	//	A_天狗兵Ａ $:名前 $:ルート $:敵潜入視力 $:敵危険視力

	@A_天狗兵Ａ 敵兵:61 0 d:天狗Ａ潜入視力１Ｆ d:天狗Ａ危険視力

	@A_天狗兵Ａ 敵兵:62 2 d:天狗Ａ潜入視力２Ｆ d:天狗Ａ危険視力

	@A_天狗兵Ａ 敵兵:63 5 d:天狗Ａ潜入視力１Ｆ d:天狗Ａ危険視力



	//	A_守備天狗兵Ａ $:名前 $:ルート $:敵潜入視力 $:敵危険視力 $:守備Ｘ $:守備Ｙ $:守備Ｚ

	@A_守備天狗兵Ａ 敵兵:64 1 d:天狗Ａ潜入視力１Ｆ d:天狗Ａ危険視力 9000     0 -61000

	@A_守備天狗兵Ａ 敵兵:65 3 d:天狗Ａ潜入視力２Ｆ d:天狗Ａ危険視力 19250 4000 -62500

	//@A_守備天狗兵Ａ 敵兵:66 4 d:天狗Ａ潜入視力２Ｆ d:天狗Ａ危険視力 30000 4000 -62500

}



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 \

		-e { 爆弾解体ミッション用攻撃兵セット } \

		-wait (60*3) \			/*危険開始時の出動遅らせ時間*/

		-avoidwait (60*5) \		/*回避モードで始まる場合のみ有効*/

		-status 0x01



}



proc 爆弾解体ミッション用天狗兵コマンダー {

	chara 天狗兵コマンダー tng_com \

		-e { 爆弾解体ミッション用天狗兵セット } \

		-m d:TNG_COM_MULTITEX_AUTO \

		-type 0

}



proc 爆弾解体ミッション用コマンダー設定 {

	#if d:DEBUG_PRINT

		print 'commander_set-bomb_misson'

	#endif



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

		-a 爆弾解体ミッション用天狗兵コマンダー \

		-d 第一メタルハンガー \

		-v [ene_plant_voice:04] \

		-y [ghq_caution_voice:w42a] \

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

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

		-b 0 \

		-s d:ENE_STAGE_VR_ANOTHER \

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

		-h $i:標準警戒時間



}







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

// 監視カメラに関する設定

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

proc 爆弾解体ミッション用監視カメラ破壊時処理 $:名前 $:フラグ {

	if ($:名前 == カメラ:01) {

		eval ($b:a42a_カメラ破壊ロード回数[0] = $w:グローバルロード回数)

		eval ($b:a42a_カメラ破壊フラグ[0] = $:フラグ)

	} else if ($:名前 == カメラ:02) {

		eval ($b:a42a_カメラ破壊ロード回数[1] = $w:グローバルロード回数)

		eval ($b:a42a_カメラ破壊フラグ[1] = $:フラグ)

	}



}



proc 爆弾解体ミッション用監視カメラ設置 {

	#if d:DEBUG_PRINT

		print 'a42a_svc_camera_set-bomb_mission'

	#endif

	@カメラ再セットチェック $b:a42a_カメラ破壊ロード回数[0]

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

		eval ($b:a42a_カメラ破壊フラグ[0] = 0)

	}

//	A_監視カメラ $:名前 $:場所Ｘ $:場所Ｙ $:場所Ｚ $:取付縦方向 $:取付横方向 $:カメラ振り中心角 $:振り幅 $:フラグ

	@A_監視カメラ カメラ:01 8000 7000 -31750 450 1024 1024 500 $b:a42a_カメラ破壊フラグ[0]



	@カメラ再セットチェック $b:a42a_カメラ破壊ロード回数[1]

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

		eval ($b:a42a_カメラ破壊フラグ[1] = 0)

	}

	@A_監視カメラ カメラ:02 19000 7000 -55750 450 3072 3072 500 $b:a42a_カメラ破壊フラグ[1]

}







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

// アイテムに関する設定

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

proc 爆弾解体ミッション用アイテム取得時番号設定 $:ボックス名 {

	#if d:DEBUG_PRINT

		print 'item_no_set-bomb_misson'

	#endif



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

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

	}



}



proc 爆弾解体ミッション用アイテム設置 {

	#if d:DEBUG_PRINT

		print 'w42a_item_set-bomb_misson'

	#endif



	// ダンボールＥ

	@ダンボールＥ_初期設置 ダンボールＥ:01 9250 4000 -13000 0 25



	// レーション

	@アイテム再セットチェック（難易度対応） $b:w42a_取得ロード回数[1]

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

		@レーション_初期設置 レーション:01 17750 0 -42000 0

	}



}





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

// 解体Ｃ４設置

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



	proc 爆弾解体ミッション用解体Ｃ４設置 {

		#if d:DEBUG_PRINT

			print 'bomb_set-bomb_misson'

		#endif



		switch ( $s:選択プレイヤー) {

			case ( ライデン ) {

				@ライデン用解体Ｃ４設置

			}

			case ( スネーク ) {

				@スネーク用解体Ｃ４設置

			}

			case ( プリスキン ) {

				@プリスキン用解体Ｃ４設置

			}

			case ( タキシードスネーク ) {

				@タキシードスネーク用解体Ｃ４設置

			}

			case ( 刀ライデン ) {

				@刀ライデン用解体Ｃ４設置

			}

			case ( 前作スネーク ) {

				@前作スネーク用解体Ｃ４設置

			}

		}

	}



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

// 爆弾を解体したときに呼ばれるプロック

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

	proc A_各ステージ別爆弾解体時処理 $:p_解体爆弾名 {

		#if d:DEBUG_PRINT

			print 'bomb_disposal $:p_解体爆弾名='$:p_解体爆弾名

		#endif



		switch ( $s:選択プレイヤー) {

			case ( ライデン ) {

				@ライデン用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( スネーク ) {

				@スネーク用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( プリスキン ) {

				@プリスキン用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( タキシードスネーク ) {

				@タキシードスネーク用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( 刀ライデン ) {

				@刀ライデン用爆弾解体時プロック $:p_解体爆弾名

			}

			case ( 前作スネーク ) {

				@前作スネーク用爆弾解体時プロック $:p_解体爆弾名

			}

		}





		if( $s:選択プレイヤー == ライデン || \

			$s:選択プレイヤー == スネーク || \

			$s:選択プレイヤー == プリスキン || \

			$s:選択プレイヤー == 前作スネーク ) {

			command ＶＲ全体マップ表示３Ｄ＿爆弾解除 -b d:F_ARSENAL_42

			$i:A_全体マップ爆弾設置ステージ = ( $i:A_全体マップ爆弾設置ステージ & ~(d:F_ARSENAL_42) );

		} else {

			if( $b:A_爆弾解体終了状態フラグ[2] == 1 && $b:A_爆弾解体終了状態フラグ[3] == 1 ) {

				command ＶＲ全体マップ表示３Ｄ＿爆弾解除 -b d:F_ARSENAL_42

				$i:A_全体マップ爆弾設置ステージ = ( $i:A_全体マップ爆弾設置ステージ & ~(d:F_ARSENAL_42) );

			}

		}

	}



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

// ライデン用爆弾プロック

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



	proc ライデン用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:02 17000,3800,-32700 0 3072 0 \

			d:BOMB_A \			// タイプ

			2 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm002 \

			もやもや:02

	}



	proc ライデン用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:02 ) {

				$b:A_爆弾解体終了状態フラグ[2] = 1;

				mesg 爆弾検知領域 もやもや:02 消去 d:BOMB_RADAR_OFF_TIME

			}

		}

	}



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

// スネーク用爆弾プロック

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



	proc スネーク用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:12 12000,2350,-64750 3072 2048 0 \

			d:BOMB_A \			// タイプ

			2 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm012 \

			もやもや:12

	}



	proc スネーク用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:12 ) {

				$b:A_爆弾解体終了状態フラグ[2] = 1;

				mesg 爆弾検知領域 もやもや:12 消去 d:BOMB_RADAR_OFF_TIME

			}

		}

	}



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

// プリスキン用爆弾プロック

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



	proc プリスキン用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:22 19500,4000,-17000 3072 0 0 \

			d:BOMB_B \			// タイプ

			2 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm022 \

			もやもや無し

	}



	proc プリスキン用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:22 ) {

				$b:A_爆弾解体終了状態フラグ[2] = 1;

				command トラップ切り替え -trap bm022 -switch 0

			}

		}

	}



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

// タキシードスネーク用爆弾プロック

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



	proc タキシードスネーク用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:32 12250,0,-66500 3072 0 0 \

			d:BOMB_B \			// タイプ

			2 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm032 \

			もやもや無し



		@A_解体Ｃ４設置 解体Ｃ４:33 5150,1000,-46000 250 (512+150) 0 \

			d:BOMB_B \			// タイプ

			3 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm033 \

			もやもや無し



	}



	proc タキシードスネーク用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:32 ) {

				$b:A_爆弾解体終了状態フラグ[2] = 1;

				command トラップ切り替え -trap bm032 -switch 0

			}

			case ( 解体Ｃ４:33 ) {

				$b:A_爆弾解体終了状態フラグ[3] = 1;

				command トラップ切り替え -trap bm033 -switch 0

			}

		}

	}



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

// 刀ライデン用爆弾プロック

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



	proc 刀ライデン用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:42 16750,7100,-37750 (1024-100) 1024 0 \

			d:BOMB_B \			// タイプ

			2 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm042 \

			もやもや無し



		@A_解体Ｃ４設置 解体Ｃ４:43 8500,-250,-59500 0 3072 0 \

			d:BOMB_B \			// タイプ

			3 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm043 \

			もやもや無し



	}



	proc 刀ライデン用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:42 ) {

				$b:A_爆弾解体終了状態フラグ[2] = 1;

				command トラップ切り替え -trap bm042 -switch 0

			}

			case ( 解体Ｃ４:43 ) {

				$b:A_爆弾解体終了状態フラグ[3] = 1;

				command トラップ切り替え -trap bm043 -switch 0

			}

		}

	}



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

// 前作スネーク用爆弾プロック

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



	proc 前作スネーク用解体Ｃ４設置 {

		@A_解体Ｃ４設置 解体Ｃ４:52 19750,3750,-47000 0 (1024+512) 0 \

			d:BOMB_B \			// タイプ

			2 \					// フラグ番号

			d:C4FLAG_NORMAL \	// フラグ

			bm052 \

			もやもや無し

	}



	proc 前作スネーク用爆弾解体時プロック $:p_解体爆弾名 {

		switch ( $:p_解体爆弾名 ) {

			case ( 解体Ｃ４:52 ) {

				$b:A_爆弾解体終了状態フラグ[2] = 1;

				command トラップ切り替え -trap bm052 -switch 0

			}

		}

	}







