/*

	a24d_hold.h

	    電算室（武装解除ミッション用）

	    大元のファイルa24d.gcl

	2002/5/14 T.Ohtani

	$Id: a24d_hold.h,v 1.20 2002/08/15 05:01:08 usr13731 Exp $

*/

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

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

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

#define		MISSION_HOLD		1		// 武装解除用プロック起動用



enum H_R{

	攻撃兵出現位置南,

	攻撃兵出現位置北,

	雷電道１ = 2,

	雷電道２,

	雷電道３,

	雷電道４,

	雷電道５,

	蛇道１= 7,

	蛇道２,

	蛇道３,

	蛇道４,

	蛇道５,

	昔蛇１ = 12,

	昔蛇２,

	昔蛇３,

	昔蛇４,

	昔蛇５,

	昔蛇６,

}



// 敵兵ステータス

#define 武装解除警備ST d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL -2000 -16000 -5000	電算室

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

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

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

proc 武装解除ミッション用マップ定義前設定 {

	#if d:DEBUG_PRINT

		print 'proc_set1-hold_misson'

	#endif

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



	@武装解除ミッション３面ＶＲウィンドウ設定

	@ＶＲクリア設定 p:load_alt_hold_a13b p:load_alt_hold_a24d



	command セットルートオフセット	d:SCN:武装解除 // a_vardef.h のenum

}



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

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

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

proc 武装解除ミッション用マップ定義後設定 {



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

	command マップ設定 電算室 -set {

		@各ミッション用ゴール表示 -2500 -16000 -57500

		@武装解除ミッション用サウンド設定

		@武装解除ミッション用変数設定

		@武装解除ミッション用コマンダー設定

		@武装解除待機所変更

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

	}



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

	command マップ設定 電算室 -set {

		@武装解除ミッション電算室アイテム設置

	}

}



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

// ＶＲウィンドウの設定と表示

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

proc 武装解除ミッション３面ＶＲウィンドウ設定 {

	#if d:DEBUG_PRINT

		print 'vr_window_set-hold up LEVEL3'

	#endif



	@ＶＲウィンドウ設定	[VRMSG_J:ALT_HLD_a24d] [VRMSG_E:ALT_HLD_a24d] [VRMSG_G:ALT_HLD_a24d] \	// 日、英、独

						[VRMSG_F:ALT_HLD_a24d] [VRMSG_I:ALT_HLD_a24d] [VRMSG_S:ALT_HLD_a24d] \	// 仏、伊、西

						[VRMSG_K:ALT_HLD_a24d] \												// 韓

						p:武装解除ミッション３面ステージ開始時処理								// 終了プロック





	// ＶＲウィンドウを表示する

	mesg ＶＲウィンドウ ＶＲウィンドウ君 開く



	// スタート時とクリア時に使用するカットインカメラ

	chara カメラ カットインカメラ		-c 0 -l 0 -p  0



	// スタート時のカメラ(必要な場合)

	chara カメラ設定 カットインカメラ \

		-c 1 \

		-p -2314,-11494,-48162 -t -2500,-16000,-57500 \

		-r 293,2061,0 -f 10370 \

		-a 200 \

		-i 0 0 0 0 \

		-s 1

}







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

// ステージ開始時処理

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

proc 武装解除ミッション３面ステージ開始時処理 {

	#if d:DEBUG_PRINT

		print 'game_start!!!!!'

	#endif



	// プレイヤーやパッドの制御等を行う a_stdproc.hで定義

	@全ミッション共通ステージ開始時処理



	// カメラワークスタート(必要な場合)

	// 全体図

	// カメラワークスタート(必要な場合)

	// 全体図

	chara カメラ設定 カットインカメラ \

		-c 1 \

		-p 0,-4668,-69466 -t 0,-10466,-71352 \

		-r 818,2048,0 -f 6097 \

		-a 200 \

		-i 0 0 d:START_CAMERA_CHANGE_TIME d:START_CAMERA_CHANGE_TIME \

		-s 1



	chara delay ディレイ \

		-time d:START_CAMERA_CHANGE_TIME \

		-exec {

			chara カメラ設定 カットインカメラ -s -1

		}



}







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

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

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

proc 武装解除ミッション用クリア時処理 {

	#if d:DEBUG_PRINT

		print 'HOLD UP Lv3_clear'

	#endif

	// 強制モーションを発動

	@全ミッション共通クリアモーション発動 d:モーションリスト:non_mclr_1 0



	chara カメラ設定 カットインカメラ \

		-c 1 \

		-p -2275,-14938,-53146 -t -2719,-14944,-56938 \

		-r 1,2124,0 -f 3818 \

		-a 200 \

		-i 2 2 0 0 \

		-s 1



}





proc 武装解除ミッション用サウンド設定 {

	#if d:DEBUG_PRINT

		print 'sound_set-hold_misson'

	#endif



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

	@サウンド効果音設定



}



proc 武装解除ミッション用ＢＧＭ設定 {

	#if d:DEBUG_PRINT

		print 'bgm_set-hold_misson'

	#endif

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

}



proc 武装解除ミッション用変数設定 {

	#if d:DEBUG_PRINT

		print 'stage_var_set-hold_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_OPEN;		// 左扉

	$$b:ドアフラグ[2] = d:DOOR_FLAG_OPEN;		// 右扉



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

	// 装備に関する設定(0-開かない 1-開く)

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

	// このステージの最低初期装備。

	// 凍結スプレー

	// ダンボール

	// 雑誌。

	@武装解除キャラ別標準装備設定



	// プレイヤ別。

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

		case( ライデン ){

			@A_アイテム数設定 d:アイテム:ダンボールＣ 25

			@A_弾数設定 d:武器:雑誌 5

			command シナリオ前武器変更	-number d:武器:雑誌

			command シナリオ前装備変更	-number d:アイテム:ダンボールＣ

		}

		case( プリスキン ){

			@A_アイテム数設定 d:アイテム:ダンボールＣ 25

			command シナリオ前装備変更	-number d:アイテム:ダンボールＣ

		}

		case( スネーク ){

			@A_アイテム数設定 d:アイテム:ダンボールＣ 25

			@A_弾数設定 d:武器:雑誌 3

			command シナリオ前武器変更	-number d:武器:雑誌

			command シナリオ前装備変更	-number d:アイテム:ダンボールＣ

		}

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

			@A_弾数設定 d:武器:雑誌 1

			command シナリオ前武器変更	-number d:武器:雑誌

		}

		case( 前作スネーク ){

		}

		default{

			#ifndef d:FIX_MODE

				command assert(d:FALSE) 'select pc error!! a24d_hold.h'

			#endif

			eval ($w:武器弾数Ｒ[ d:武器:Ｍ９ ] = 15 );

			eval ($w:武器 = d:武器:Ｍ９);

			eval ($w:武器弾数Ｒ[ d:武器:凍結スプレー ] = 1 );

			eval ($w:武器弾数Ｒ[ d:武器:雑誌 ] = 5 );

			eval ($w:アイテム数Ｒ[ d:アイテム:ダンボールＣ] = 1 );

		}

	}

}





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

// 敵兵の設定

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

proc 武装解除ミッション用警備兵セット {

	#if d:DEBUG_PRINT

		print 'watcher_set-hold_misson'

	#endif

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

		case( ライデン ){

			// A_武装解除警備兵 名前  ルート ノード ステータス 拡張ステータス 警備ポイントＸＹＺ マップ名

			@A_武装解除警備兵 敵兵:01 d:H_R:雷電道１	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:02 d:H_R:雷電道２	2 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:03 d:H_R:雷電道３	2 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:04 d:H_R:雷電道４	1 d:武装解除警備ST

		}

		case( プリスキン ){

			// A_武装解除警備兵 名前  ルート ノード ステータス 拡張ステータス 警備ポイントＸＹＺ マップ名

			@A_武装解除警備兵 敵兵:01 d:H_R:雷電道１	2 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:02 d:H_R:雷電道２	2 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:03 d:H_R:雷電道３	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:04 d:H_R:雷電道４	2 d:武装解除警備ST

		}

		case( スネーク ){

			@A_武装解除警備兵 敵兵:01 d:H_R:蛇道１	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:02 d:H_R:蛇道２	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:03 d:H_R:蛇道３	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:04 d:H_R:蛇道４	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:05 d:H_R:蛇道５	0 d:武装解除警備ST

		}

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

			@A_武装解除警備兵 敵兵:01 d:H_R:蛇道１	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:02 d:H_R:蛇道２	2 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:03 d:H_R:蛇道３	3 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:04 d:H_R:蛇道４	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:05 d:H_R:蛇道５	0 d:武装解除警備ST

		}

		case( 前作スネーク ){

			@A_武装解除警備兵 敵兵:01 d:H_R:昔蛇１	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:02 d:H_R:昔蛇２	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:03 d:H_R:昔蛇３	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:04 d:H_R:昔蛇４	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:05 d:H_R:昔蛇５	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:06 d:H_R:昔蛇６	1 d:武装解除警備ST

		}

		default{

			// A_武装解除警備兵 名前  ルート ノード ステータス 拡張ステータス 警備ポイントＸＹＺ マップ名

			@A_武装解除警備兵 敵兵:01 d:H_R:雷電道１	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:02 d:H_R:雷電道２	2 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:03 d:H_R:雷電道３	0 d:武装解除警備ST

			@A_武装解除警備兵 敵兵:04 d:H_R:雷電道４	1 d:武装解除警備ST

		}

	}



}



proc 武装解除ミッション用攻撃兵セット {

	#if d:DEBUG_PRINT

		print 'attacker_set-hold_misson'

	#endif

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

		case( ライデン ){

			// A_武装解除サポート攻撃兵 名前 ルート ステータス 拡張ステータス 装備 敵兵名

			@A_武装解除サポート攻撃兵 攻撃兵:01 d:H_R:攻撃兵出現位置南 d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL d:ENE_EQUIP_TYPE_NORMAL 敵兵:01

		}

		case( プリスキン ){

			@A_武装解除サポート攻撃兵 攻撃兵:01 d:H_R:攻撃兵出現位置南 d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL d:ENE_EQUIP_TYPE_NORMAL 敵兵:01

		}

		case( スネーク ){

			@A_武装解除サポート攻撃兵 攻撃兵:01 d:H_R:攻撃兵出現位置南 d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL d:ENE_EQUIP_TYPE_NORMAL 敵兵:01

		}

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

			@A_武装解除サポート攻撃兵 攻撃兵:01 d:H_R:攻撃兵出現位置南 d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL d:ENE_EQUIP_TYPE_NORMAL 敵兵:01

		}

		case( 前作スネーク ){

			@A_武装解除サポート攻撃兵 攻撃兵:01 d:H_R:攻撃兵出現位置南 d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL d:ENE_EQUIP_TYPE_NORMAL 敵兵:01

		}

		default{

			#ifndef d:FIX_MODE

				print 'select pc error!! (scn)'

				command assert(d:FALSE) 'select pc error!! a24d_hold.h'

			#endif



			@A_武装解除サポート攻撃兵 攻撃兵:01 d:H_R:攻撃兵出現位置南 d:ENE_STATUS_NORMAL d:ENE_STATUS_NORMAL d:ENE_EQUIP_TYPE_NORMAL 敵兵:01

		}

	}



}



proc 武装解除ミッション用警備兵コマンダー {

	#if d:DEBUG_PRINT

		print 'wccomm_set-hold_misson'

	#endif



	chara 警備コマンダー wccomm -e { 武装解除ミッション用警備兵セット }

}



proc 武装解除ミッション用攻撃兵コマンダー {

	#if d:DEBUG_PRINT

		print 'atcomm_set-hold_misson'

	#endif



	chara 攻撃コマンダー atcomm -e { 武装解除ミッション用攻撃兵セット }

}



proc 武装解除ミッション用コマンダー設定 {

	#if d:DEBUG_PRINT

		print 'commander_set-hold_misson'

	#endif



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

	// 攻撃兵は待機所変更を行っているので名前を「攻撃兵」で固定すると便利



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

		-w 武装解除ミッション用警備兵コマンダー \

		-a 武装解除ミッション用攻撃兵コマンダー \

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

		-r 0,-12000,-71000 電算室  0,-16000,-46000 電算室 \

		-c 0,-12000,-71000 電算室  0,-16000,-46000 電算室 \

		-x [ghq_area_alert_voice:w24d] \

		-y [ghq_caution_voice:w24d] \

		-v [ene_plant_voice:01] \

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

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

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

		-h $i:標準警戒時間 \

		-s d:ENE_STAGE_VR_ANOTHER \



}



proc 武装解除待機所変更 {

	trap en004 d:PLAYER \

		-mask ？ \

		-exec {

			if( $3 == 入る ) {

				print '待機所変更01'

				//mesg アタッカー 攻撃兵:01 ルート変更 18

				//mesg アタッカー 攻撃兵:02 ルート変更 19

				//mesg アタッカー 攻撃兵:03 ルート変更 20

				mesg アタッカー 攻撃兵 ルート変更 d:H_R:攻撃兵出現位置南 	// アタッカーの出現ポイントを決める

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

			} else {

				print '待機所変更02'

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

				//mesg アタッカー 攻撃兵:02 ルート変更 9

				//mesg アタッカー 攻撃兵:03 ルート変更 10

				mesg アタッカー 攻撃兵 ルート変更 d:H_R:攻撃兵出現位置北	// アタッカーの出現ポイントを決める

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

			}

		}

}





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

// アイテム関連

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



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

	#if d:DEBUG_PRINT

		print 'item_no_set'

	#endif

}





proc 武装解除ミッション電算室アイテム設置 {

	#if d:DEBUG_PRINT

		print 'item_hold_set'

	#endif

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

		case( ライデン ){

			@雑誌_初期設置 雑誌１ 2500 -12000 -70500 0

		}

		case( プリスキン ){

			@雑誌_初期設置 雑誌１ 2500 -12000 -70500 0

		}

		case( スネーク ){

			@雑誌_初期設置 雑誌１ 2500 -12000 -70500 0

		}

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

		}

		case( 前作スネーク ){

			// なし

		}

		default{

			#ifndef d:FIX_MODE

				print 'select pc error!! (scn)'

				command assert(d:FALSE) 'select pc error!! a24d_hold.h'

			#endif



		}

	}

}



