--八雲紫用ai
--しなうす式/20220710check

require("function_pun_strage.lua")
head_req_list()

function main()
--シード生成、スレッド生成、base_states設定
	set_seedthreadstates()
--キャラ確認
	char_calling()
--ステージが 核融合炉心部 だと超反応モードに
	set_printsabot()

while true do
--スレッド外初期化
	while_top()

--●どちらかが体力無くなったら待機
	if interbattle_condi()==true then
		interbattle_exe()
--▼開幕行動▼
	elseif kaimaku_condi()==true then
		kaimaku_exe()
--▼移動起き上がり
	elseif my_act==97 or my_act==98 then --基本：画面端より遠ざかる。中央では相手から遠ざか…りたいが、設置技警戒のため、相手側に移動起き上がり。
		movedgetup_exe()

--▼簡易受け身▼：攻撃ないし回避いずれの目的であってもリカバリーポイントは限られるが、そういうことはさておき実装したもの
	elseif recovery_condi()==true then
		recovery_exe()

--▼台風になった時、フラグに従って「緋想の剣」を使用
	elseif y==0 and my_act<=10 and card_check(14) and flag_kishitu==1 then
		print("天候フラグＯＮ　⇒　「緋想の剣」使用");
		card_use(14);

--▼台風▼：近接状態からの強引な状況変更を行う行動。スペカなど使用。
	elseif react_rejecttaihu_condi()==true then
		react_rejecttaihu_exe()

--▼起き攻め▼
	elseif setplay_ongetup_condi()==true then
		setplay_ongetup_exe()
--▼ＨＪＣ▼
	--地上HJC
	elseif hjc_ground_condi()==true then
		hjc_ground_exe()
	--空中HJC
	elseif hjc_air_condi()==true then
		hjc_air_exe()

--▼反応行動
--反応：下段
	elseif 	react_lowattack_condi()==true then
		react_lowattack_exe()
--反応：地対空
	elseif react_g2a_condi()==true then
		react_g2a_exe()
--反応：低空飛翔
	elseif react_lowj6d_condi()==true then
		react_lowj6d_exe()
--上空追いかけ
	elseif ueoikake_condi()==true then
		ueoikake_exe()
--霊撃 or 霊撃札
	elseif reigeki_condi()==true then 
		print("拒否行動：霊撃　⇒　可能ならば使用");
		card_use(0)
		
--▼グレイズ：相手行動に対する反射or一定距離内のオブジェクト感知▼
--モーション反応グレイズ
	elseif
	graze_condition_xrange()==true and
	state_nottrueguard()==true and 
	my_airEX>=1 and 
	my_rei>=0 
	then--近距離時のグレイズ。のさばらせておくと、誤結界の原因となる。ガードの硬直間際ならok
		print("check 1 -> graze act X Range");
		graze_action_xrange()
			
--▼ ガード行動：簡易ガードルーチン▼
--▼ ガード反撃、龍魚の羽衣 13
	elseif hagoromo_1st_condi()==true or hagoromo_condi()==true then
		hagoromo_exe()

--回避結界
	elseif kekkai_condi()==true then
		kekkai_exe()

--▼ 宵越しの銭 12
	elseif yoikoshi_1st_condi()==true or yoikoshi_condi()==true then
		yoikoshi_exe()

--▼汎用中下段ガード
--基本は行動に対して後退入れ込み。下段のみ抽出して反応。通常射撃も同じく下段で受ける(けどメンドウだから今回は省き)。フラグを抜けてくるものは別個に対応
	elseif lowattack_aflags_condi()==true then
		guard_backexpectlowattack_exe()
	elseif overheadattack_aflags_condi()==true then
		guard_backoverheadattack_exe()
--下段判定をフィルタ
	elseif lowattack_flaged_condi()==true then
		guard_backexpectlowattack_exe()
--フラグを抜けてくるものをフィルタ
	elseif lowattack_unflaged_condi()==true then
		guard_backexpectlowattack_exe()
--屈状態では低空昇り攻撃には立てない
	elseif notstand_overhead_upjump_condi()==true then
		guard_backexpectlowattack_exe()
--以下、何もフィルタされなかった場合、立ちガード
	elseif guard_pun_condi()==true then
		guard_backoverheadattack_exe()

--[[▼オブジェが至近距離の場合、着地直前にｈｊを仕込む、タッチ＆ゴーグレイズ
	elseif touchandgo_00_condi() then
		touchandgo_00_exe()
--オブジェが至近距離の場合、ガードの前に、離陸
	elseif touchandgo_01_condi() then
		touchandgo_01_exe()
	elseif touchandgo_02_condi() then
		touchandgo_02_exe()
--]]
--オブジェが至近距離の場合、空中から地上へ飛翔　※咲夜：２D：120.0以上、３D：84.9以上必要
	elseif graze_pun_condi()==true then
		graze_pun_exe()
		
--遠距離時のグレイズ
	elseif graze_farground_condi() then
		graze_farground_exe()
	elseif graze_farair_condi() then
		graze_farair_exe()
		
--特定状況におけるガード
	elseif guard_objgimmick_condi()==true then
		guard_backexpectlowattack_exe()
--オブジェが至近距離の場合、ガード:射撃と打撃を重ねられると、しゃがみガードしてしまう。優先順位の変更が必要
	elseif guard_objclosedis_condi()==true then
		guard_backexpectlowattack_exe()
	
--▼起き上がり直後の行動
	elseif move_soonaftergetup_condi()==true then
		move_soonaftergetup_exe()

--▼コンボ▼
--AAAA連携
--AA
	elseif my_act==300 and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
		print("コンボ：A>ＡＡ");
		key_event(ACT_A);
	--AAA
		elseif ey==0 and my_act==320 and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
			print("コンボ：AA>ＡＡＡ");
			key_event(ACT_A);
		--AAAA：霊力がない場合のみ派生
			elseif ey==0 and my_act==321 and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true and my_rei<200 then
				print("コンボ：AAA>ＡＡＡＡ");
				key_event(ACT_A);
--A>6C
	elseif (my_act==300 or my_act==330) and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=145)) and ey>0 and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true and my_rei>=200 then
		print("近A or 4A>C");
		key_event(ACT_C);
--遠A>C
	elseif my_act==301 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and my_allframe>=18 and is_dir_front==true and my_rei>=200 then
		key_reset();
		print("遠Ａ＞C");
		key_event(ACT_C);
--遠A>3A
	elseif my_act==301 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true and my_rei<200 then
		key_reset();
		print("遠Ａ＞３Ａ");
		key_event2(ACT_A,d_front);
--3A>2C
	elseif (my_act==302 or my_act==304) and 
	(
	(enemy_act>=50 and enemy_act<=89 and weather==18) or 
	(enemy_act>=50 and enemy_act<=89 and my_correction>=32 and ((my_dir==1 and x>=880)or(my_dir==-1 and x<=400))) or
	(enemy_act>=150 and enemy_act<=166)
	) and 
	my_hitstop<=3 and my_hitstop>=1 and is_dir_front==true then
		print("３Ａ＞2Ｃ");
		key_event2(ACT_C,ACT_DOWN);
--JC>J66>JA
	elseif my_act==414 and my_frame+1>=20 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and is_dir_front==true and (my_air<=1 or (my_air<=2 and weather==10)) then
		key_reset();
		print("JC＞Ｊ66");
		lvr66();
	elseif my_act==202 and my_allframe>=0 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and is_dir_front==true and (my_air<=1 or (my_air<=2 and weather==10)) then
		key_reset();
		print("Ｊ66>JA");
		key_event(ACT_A);
	
--JA>J8A>JC
	elseif my_act==306 and ey>=y and ey>0 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
		key_reset();
		if my_hitstop>=1 then
			wait(my_hitstop);
		end
		print("ＪＡ＞Ｊ８Ａ"); --空中のみ
		key_event2(ACT_A,ACT_UP);
	elseif my_act==309 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=145)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
		key_reset();
		if my_hitstop>=1 then
			wait(my_hitstop);
		end
		print("Ｊ8Ａ＞ＪＣ");
		key_event(ACT_C);
--JA>J6A>JC or J6B or J6C
	elseif my_act==306 and ey<=y and ey>0 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
		key_reset();
		print("ＪＡ＞Ｊ６Ａ"); --空中のみ
		key_event2(ACT_A,front);
		elseif my_act==308 and ((my_dir==1 and x>=880)or(my_dir==-1 and x<=400)) and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
			key_reset();
			if my_hitstop>=1 then
				wait(my_hitstop+5);
			end
			print("Ｊ8Ａ＞ＪＣ");
			key_event(ACT_C);
		elseif my_act==308 and ((my_dir==1 and x>=580)or(my_dir==-1 and x<=700)) and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
			key_reset();
			print("Ｊ8Ａ＞Ｊ6B");
			key_event2(ACT_C,front);
		elseif my_act==308 and ((my_dir==1 and x>=80)or(my_dir==-1 and x<=1200)) and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
			key_reset();
			print("Ｊ8Ａ＞Ｊ6C");
			key_event2(ACT_C,front);
--JA>JC
	elseif my_act==306 and  y+my_yspeed/5*17>=1 and
	((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=145)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
		key_reset();
		print("ＪＡ＞ＪC");
		key_event(ACT_C);
--J6A>234B
--	elseif my_act==307 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
--		key_reset();
--		print("Ｊ６Ａ＞コマンド：２３６B");
--		lvr236(ACT_B);
--J2A>214コマンド
--	elseif my_act==308 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=166)) and my_hitstop<=3 and my_hitstop>=2 and my_allframe>=24 and is_dir_front==true then
--		key_reset();
--		print("Ｊ２Ａ＞２１４スキル");
--		lvr214(ACT_C);
		
--AAA>C>スキル
--AAA>C
	elseif my_act==321 and ((enemy_act>=50 and enemy_act<=89) or (enemy_act>=143 and enemy_act<=145)) and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true then
		print("AAA>C");
		if math.random(2)==1 then
			wait(4);
			if enemy_act>=220 and enemy_act<=226 then
				key_event(ACT_A);
			else
				key_event2(ACT_A,d_front);
			end
		elseif math.random(2)==2 then
			key_event(ACT_C);
			wait(2);
		end
	--C>スキル
		
--J6A or J2A > C
	elseif (my_act==307 or my_act==308 or my_act==309) and enemy_act>=143 and enemy_act<=166 and my_hitstop<=3 and my_hitstop>=2 and is_dir_front==true and ((my_yspeed*1/5*20>=1 and my_yspeed*1/5*30<=0)or(my_air<=1 or (my_air<=2 and weather==10))) then
			print("〜>C");
			key_event(ACT_B);--]]
	
		
				  
--▼固め▼
--遠A>6A or 3A
	elseif my_act==301 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(8)==1 then
		print("遠A > 3A");
		key_reset();
		key_event2(ACT_A,d_front);
	elseif my_act==301 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(8)==1 then
		print("遠A > 6A");
		key_reset();
		key_event2(ACT_A,front);
--JA>J8A
	elseif my_act==306 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 then
		print("JA>J8A");
		key_reset();
		key_event2(ACT_A,ACT_UP);

--6A or 3A > 5C or 2C or C禅寺
	elseif (my_act==302 or my_act==304) and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(8)==1 then --基本のグレイズつぶし。状況によっては確定でいいかも。状況限定でB、スキカもあり。
		print("6A>C禅寺");
		key_reset();
		key_on(ACT_D);
		yield();
		key_reset();
		lvr623(ACT_C);
	elseif (my_act==302 or my_act==304) and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(2)==1 then --距離が遠いと連ガにならない
		print("6A or 3A > C");
		key_reset();
		key_event(ACT_C);
	elseif (my_act==302 or my_act==304) and dis>=120 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(1)==1 then --Cが連ガでない場合
		print("6A or 3A > 2C");
		key_reset();
		key_event2(ACT_C,ACT_DOWN);
--地上C系>HJ>(JC or J6C)>【66>JA>J8A】or【6飛>JA】
--2A×n > 6A or 3A or ダッシュ2A or 5B(運送)
	elseif my_act==303 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(16)==1 then
		print("2A > 5B");
		key_reset();
		key_event(ACT_B);
	elseif my_act==303 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(16)==1 then
		print("2A > 3A");
		key_reset();
		key_event2(ACT_A,d_front);
	elseif my_act==303 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(16)==1 then
		print("2A > 6A");
		key_reset();
		key_event2(ACT_A,front);
--(2A×n>) DA > C禅寺 (or 2A)
	elseif my_act==305 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(8)==1 then
		print("DA > C禅寺");
		key_reset();
		key_on(ACT_D);
		yield();
		key_reset();
		lvr623(ACT_C);
--(2A×n>) DB > C禅寺 (or 2A)
	elseif my_act==408 and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and math.random(6)==1 then
		print("DB > C禅寺");
		key_reset();
		key_on(ACT_D);
		yield();
		key_reset();
		lvr623(ACT_C);
--5C>9HJ>66>B狂想
--宇宙(2個目)>9HJ
--青山>J2AorJC
--
--C禅寺＞藍＞5C
	elseif ((my_act==520) or (my_act==521 and math.random(3)==1)) and (enemy_act>=150 and enemy_act<=166) and my_hitstop<=3 and my_hitstop>=2 and card_check(201) and my_spell_more(1500) then
		print("禅寺＞式神「八雲藍」");
		key_reset();
		card_use(201);
		while my_act==601 do
			yield();
		end
		if my_act~=601 and my_preact[1]==601 then
			key_event(ACT_C);
		end
	elseif (my_act==520 or my_act==521) and my_allframe<=12 and card_check(201) and my_spell_more(1500) then
		card_1st(201);
		
--(6Aor3A>)5C or 2C>二三次元or客観
	elseif (my_act==410 or my_act==412) and (enemy_act>=150 and enemy_act<=166) and enemy_frame<=9 and is_dir_front and card_check(205) and my_spell_more(2000) then
		print("C射撃＞結界「客観結界」");
		key_reset();
		key_on(front);
		card_use(205);
		while my_act==202 do
			key_on(front);
		end
	elseif (my_act==410 or my_act==412) and (enemy_act>=150 and enemy_act<=166) and enemy_frame<=9 and (x>1000 or x<280) and is_dir_front and card_check(202) then
		print("C射撃＞境符「二次元と三次元の境界」");
		key_reset();
		card_use(202);
	

--▼固め▼

--▼攻撃▼

--▼spell card▼

	--▼cost1

		--境符「二次元と三次元の境界」,202,602,g
			--Ground
				elseif card_check(202)==true and
				my_spell_more(500) and
				--dis2<200 and
				y==0 and
				dis_y<50 and
				not(my_act>=50 and my_act<180) and my_act<600 and 
				get_fflags(0,32)==true and
				get_fflags(0,8)==false and get_fflags(1,8)==false and 
				--enemy_obj_range_in(150,60)==false and 
				is_dir_front==true and 
				subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
					print("境符「二次元と三次元の境界」");
					for i=1,10 do
					card_use(202);
					yield()
				end

		--式神「橙」,204,604,g
			--Ground
				elseif card_check(204)==true and
				my_spell_more(500) and
				--dis2<200 and
				y==0 and
				dis_y<50 and
				not(my_act>=50 and my_act<180) and my_act<600 and 
				get_fflags(0,32)==true and
				get_fflags(0,8)==false and get_fflags(1,8)==false and 
				enemy_obj_range_in(150,60)==false and 
				--is_dir_front==true and 
				subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
					print("式神「橙」");
					for i=1,10 do
					card_use(204);
					yield()
				end

	--▼cost2

		--空餌「中毒性のあるエサ」,207,607,657,g,a
			--Ground
				elseif card_check(207)==true and
					my_spell_more(1000) and
					--dis2<200 and
					--y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					--enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("空餌「中毒性のあるエサ」");
						for i=1,10 do
						card_use(207);
						yield()
					end

	--▼cost3

		--境符「四重結界」,200,600,g
			--Ground
				elseif card_check(200)==true and
					my_spell_more(1500) and
					dis>100 and
					dis<400 and
					y==0 and
					ey<200 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("境符「四重結界」");
						for i=1,10 do
						card_use(200);
						yield()
					end

		--式神「八雲藍」,201,601,g
			--Ground
				elseif card_check(201)==true and
					my_spell_more(1500) and
					--dis<300 and
					y==0 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("式神「八雲藍」");
						for i=1,10 do
						card_use(201);
						yield()
					end

		--結界「客観結界」,205,605,g
			--Ground
				elseif card_check(205)==true and
					my_spell_more(1500) and
					--dis>360 and
					y==0 and
					--ey<100 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("結界「客観結界」");
						for i=1,10 do
						card_use(205);
						yield()
					end

		--幻巣「飛光虫ネスト」,206,606,656,g,a
			--Ground
				elseif card_check(206)==true and
					my_spell_more(1500) and
					--dis<300 and
					--y==0 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("幻巣「飛光虫ネスト」");
						for i=1,10 do
						card_use(206);
						yield()
					end

	--▼cost4

		--結界「魅力的な四重結界」,203,603,g
			--Ground
				elseif card_check(203)==true and
					my_spell_more(2000) and
					dis2<400 and
					y==0 and
					ey<200 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					--enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("結界「魅力的な四重結界」");
						for i=1,10 do
						card_use(203);
						yield()
					end

		--魔眼「ラプラスの魔」,208,608,g,a
			--Ground
			--air
				elseif card_check(208)==true and
					my_spell_more(2000) and
					--dis<200 and
					--y==0 and
					--dis_y<100 and
					--ey<100 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("魔眼「ラプラスの魔」");
						for i=1,10 do
						card_use(208);
						yield()
					end

	--▼cost5

		--廃線「ぶらり廃駅下車の旅」,215,615,g
			--Ground
				elseif card_check(215)==true and
					my_spell_more(2500) and
					--dis>360 and
					y==0 and
					--ey<100 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("廃線「ぶらり廃駅下車の旅」");
						for i=1,10 do
							card_use(215);
							yield()
						end

--]]
--[[
--▼skill card▼

	--▼スキル236

		--博麗アミュレット,100,500,g,a
			--g,a
				elseif get_skill_lv(0,0)>=0 and my_rei>=400 and 
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("博麗アミュレット");
						lvr236(ACT_B);
				
				elseif get_skill_lv(0,0)>=0 and my_rei>=400 and 
					dis>450 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("博麗アミュレット");
						lvr236(ACT_C);
					
				elseif card_check(100)==true and my_rei>=400 and
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("博麗アミュレット");
						card_use(100);
		
		--妖怪バスター,104,505,g,a
			--g,a
				elseif get_skill_lv(0,4)>=0 and my_rei>=400 and 
					dis>200 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("妖怪バスター");
						lvr236(ACT_B);
					
				elseif get_skill_lv(0,4)>=0 and my_rei>=400 and 
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("妖怪バスター");
						lvr236(ACT_C);
					
				elseif card_check(104)==true and my_rei>=400 and
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("妖怪バスター");
						card_use(104);
		
		--拡散アミュレット,108,510,g

				elseif get_skill_lv(0,8)>=0 and my_rei>=400 and 
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("拡散アミュレット");
						lvr236(ACT_B);
					
				elseif get_skill_lv(0,8)>=0 and my_rei>=400 and 
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("拡散アミュレット");
						lvr236(ACT_C);
					
				elseif card_check(108)==true and my_rei>=400 and
					dis>300 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("拡散アミュレット");
						card_use(108);
		
	--▼スキル623

		--昇天脚,103,560,g

				elseif get_skill_lv(0,3)>=0 and my_rei>=400 and 
					dis<150 and
					y==0 and
					ey<200 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("昇天脚");
						lvr623(ACT_B);
					
				elseif get_skill_lv(0,3)>=0 and my_rei>=400 and 
					dis<150 and
					y==0 and
					ey<300 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					--enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("昇天脚");
						lvr623(ACT_C);
					
				elseif card_check(103)==true and my_rei>=400 and
					dis<150 and
					y==0 and
					ey<200 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("昇天脚");
						card_use(103);
		
		--抄地昇天脚,107,565,g
			--g
				elseif get_skill_lv(0,7)>=0 and my_rei>=400 and 
					dis<200 and
					y==0 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("抄地昇天脚");
						lvr623(ACT_B);
					
				elseif get_skill_lv(0,7)>=0 and my_rei>=400 and 
					dis<300 and
					y==0 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("抄地昇天脚");
						lvr623(ACT_C);
					
				elseif card_check(107)==true and my_rei>=400 and
					dis<200 and
					y==0 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("抄地昇天脚");
						card_use(107);
		
		--雨乞祈り,111,570,g,a
			--g,a
				elseif get_skill_lv(0,11)>=0 and my_rei>=400 and 
					dis<200 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("雨乞祈り");
						lvr623(ACT_B);
					
				elseif get_skill_lv(0,11)>=0 and my_rei>=400 and 
					dis<200 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("雨乞祈り");
						lvr623(ACT_C);
					
				elseif card_check(111)==true and my_rei>=400 and
					dis<200 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("雨乞祈り");
						card_use(111);

	--▼スキル421
		--亜空穴,102,540,g,a
			--g,a
				elseif get_skill_lv(0,2)>=0 and my_rei>=400 and 
					not(my_act>=50 and my_act<180) and my_act<600 and
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("亜空穴");
						lvr421(ACT_B);
					
				elseif get_skill_lv(0,2)>=0 and my_rei>=400 and 
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("亜空穴");
						lvr421(ACT_C);
					
				elseif card_check(102)==true and my_rei>=400 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("亜空穴");
						card_use(102);
		
		--封魔亜空穴,106,545,g,a
			--g,a
				elseif get_skill_lv(0,6)>=0 and my_rei>=400 and 
					dis<300 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("封魔亜空穴");
						lvr421(ACT_B);
					
				elseif get_skill_lv(0,6)>=0 and my_rei>=400 and 
					dis>300 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("封魔亜空穴");
						lvr421(ACT_C);
					
				elseif card_check(106)==true and my_rei>=400 and
					dis<300 and
					ey<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("封魔亜空穴");
						card_use(106);
		
		--刹那亜空穴,110,550,g
			--g
				elseif get_skill_lv(0,10)>=0 and my_rei>=400 and 
					dis2<300 and
					y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					enemy_act>300 and
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("刹那亜空穴");
						lvr421(ACT_B);
					
				elseif get_skill_lv(0,10)>=0 and my_rei>=400 and 
					y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==true and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("刹那亜空穴");
						lvr421(ACT_C);
					
				elseif card_check(110)==true and my_rei>=400 and
					dis2<300 and
					y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					enemy_act>300 and
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("刹那亜空穴");
						card_use(110);

	--▼スキル214
		--警醒陣,101,520,g,a
			--g,a
				elseif get_skill_lv(0,1)>=0 and my_rei>=400 and 
					dis>200 and dis<500 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("警醒陣");
						lvr214(ACT_B);
					
				elseif get_skill_lv(0,1)>=0 and my_rei>=400 and 
					dis>300 and dis<600 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("警醒陣");
						lvr214(ACT_C);
					
				elseif card_check(101)==true and my_rei>=400 and
					dis>200 and dis<500 and
					dis_y<50 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("警醒陣");
						card_use(101);	
		
		--繋縛陣,105,525,g,a
			--g,a
				elseif get_skill_lv(0,5)>=0 and my_rei>=400 and 
					dis2>300 and
					math.abs(enemy_xspeedEX)>5 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("繋縛陣");
						lvr214(ACT_B);
					
				elseif get_skill_lv(0,5)>=0 and my_rei>=400 and 
					dis2>300 and
					math.abs(enemy_yspeed)>5 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("繋縛陣");
						lvr214(ACT_C);
					
				elseif card_check(105)==true and my_rei>=400 and
					dis2>300 and
					math.abs(enemy_xspeedEX)>5 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("繋縛陣");
						card_use(105);
		
		--常置陣,109,530,g
			--g
				elseif get_skill_lv(0,9)>=0 and my_rei>=400 and 
					dis2>300 and
					y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("常置陣");
						lvr214(ACT_B);
					
				elseif get_skill_lv(0,9)>=0 and my_rei>=400 and 
					dis2>500 and
					y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("常置陣");
						lvr214(ACT_C);
					
				elseif card_check(109)==true and my_rei>=400 and
					dis2>300 and
					y==0 and
					not(my_act>=50 and my_act<180) and my_act<600 and 
					get_fflags(0,32)==true and
					get_fflags(0,8)==false and get_fflags(1,8)==false and 
					enemy_obj_range_in(150,60)==false and 
					--is_dir_front==true and 
					subs_count>=530 and nega_count ~= 1 and math.random(64)==1 then
						print("常置陣");
						card_use(109);
--]]
			
--▼攻撃▼
--▼空中打撃▼
--ＪＡ：最速発生
	elseif	y>0 and math.random(1+4)<=3 and 
	(my_act<=10 or (my_act>=180 and my_act<300)) and 
	not(my_act>=197 and my_act<=199) and
	not(enemy_act>=98 and enemy_act<=98) and
	not(enemy_act>=197 and enemy_act<=199) and
	enemy_obj_range_in(150,60)==false and
	is_dir_front and
	(y+my_yspeed*13+(13*(12*m_gs))/2)>0 	and
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*13		<=	200+30 	and
				--(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*13		>=	50-30 	and
				(ey+enemy_yspeed*13+(13*(12*e_gs))/2)	-	(y+my_yspeed*13+(13*(12*m_gs))/2)	<=	180		and
				(ey+enemy_yspeed*13+(13*(12*e_gs))/2)	-	(y+my_yspeed*13+(13*(12*m_gs))/2)	>=	50-180 	and subs_count>=530 and nega_count ~= 1 and math.random(2)==1 then
					print("JA");
					key_reset();
					key_event(ACT_A); --]]
--Ｊ６Ａ
	elseif	y>0 and math.random(1+4)<=3 and my_xspeed<0 and
	(my_act<=10 or (my_act>=180 and my_act<300)) and 
	not(my_act>=197 and my_act<=199) and
	not(my_act>=208 and my_act<=210) and
	not(enemy_act>=98 and enemy_act<=98) and
	not(enemy_act>=197 and enemy_act<=199) and
	enemy_obj_range_in(150,60)==false and
	is_dir_front and
	(y+my_yspeed/5*15)>0 	and
				(ex-x)*my_dir-(my_xspeedEX/5*15+enemy_xspeedEX*15)		<=	220+30 	and
				(ex-x)*my_dir-(my_xspeedEX/5*15+enemy_xspeedEX*15)		>=	60-30 	and
				(ey+enemy_yspeed*5+(5*(4*e_gs))/2)	-	(y+my_yspeed/5*15)	<=	140 		and
				(ey+enemy_yspeed*5+(5*(4*e_gs))/2)	-	(y+my_yspeed/5*15)	>=	100-180 	and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
					print("J6A");
					key_reset();
					key_event2(ACT_A,front);
--[[Ｊ２Ａ
	elseif	y>0 and math.random(1+4)<=3 and 
	(my_act<=10 or (my_act>=180 and my_act<300)) and 
	not(enemy_act>=98 and enemy_act<=98) and
	not(enemy_act>=197 and enemy_act<=199) and
	enemy_obj_range_in(150,60)==false and
	is_dir_front and
	(y+my_yspeed/5*17)>0 	and
				(ex-x)*my_dir-(my_xspeedEX/2*17+enemy_xspeed*17)		<=	100+30 	and
				(ex-x)*my_dir-(my_xspeedEX/2*17+enemy_xspeed*17)		>=	10-30 	and
				(ey+enemy_yspeed*5+(5*(4*e_gs))/2)	-	(y+my_yspeed/5*17)	<=	120 			and
				(ey+enemy_yspeed*5+(5*(4*e_gs))/2)	-	(y+my_yspeed/5*17)	>=	40-180 	and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
					print("J2A");
					key_reset();
					key_event2(ACT_A,ACT_DOWN);--]]
--Ｊ８Ａ
	elseif	y>0 and math.random(1+4)<=3 and my_xspeed>=0 and
	(my_act<=10 or (my_act>=180 and my_act<300)) and 
	not(enemy_act>=98 and enemy_act<=98) and
	not(enemy_act>=197 and enemy_act<=199) and
	enemy_obj_range_in(150,60)==false and
	is_dir_front and
	(y+my_yspeed/5*15)>0 	and
				(ex-x)*my_dir-(0+enemy_xspeedEX)*5		<=	80+30 	and
				(ex-x)*my_dir-(0+enemy_xspeedEX)*5		>=	0-30 	and
				(ey+enemy_yspeed*5+(5*(4*e_gs))/2)	-	(y+my_yspeed/5*15)	<=	280 		and
				(ey+enemy_yspeed*5+(5*(4*e_gs))/2)	-	(y+my_yspeed/5*15)	>=	180-180 	and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
					print("J8A");
					key_reset();
					key_event2(ACT_A,ACT_UP);--]]

--対空Ａ
	elseif y==0 and ey>0 and enemy_obj_range_in(150,60)==false and my_act<=10 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and
	((not(enemy_act>=50 and enemy_act<=166)and math.random(1+5)==1) or (enemy_act>=50 and enemy_act<=166)) and
		(	
			(	dis>=120 and
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*14		<=	180+30 	and
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*14		>=	50-30 	and
				(ey+enemy_yspeed*14+(14*(13*e_gs))/2)	-	(y+my_yspeed*14+(14*(13*m_gs))/2)	<=	150 		and
				(ey+enemy_yspeed*14+(14*(13*e_gs))/2)	-	(y+my_yspeed*14+(14*(13*m_gs))/2)	>=	50-180
			) or
			(	dis<120 and
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*8		<=	80+30 	and
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*8		>=	20-30 	and
				(ey+enemy_yspeed*8+(8*(7*e_gs))/2)	-	(y+my_yspeed*8+(8*(7*m_gs))/2)	<=	180 		and
				(ey+enemy_yspeed*8+(8*(7*e_gs))/2)	-	(y+my_yspeed*8+(8*(7*m_gs))/2)	>=	60-180
			)
		) and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("対空6Ａ");
		key_event2(ACT_A,front);
--対空9HJ>JＡ:14F それなりに機能する。対地上りJAも兼ねる。
	elseif y==0 and 
	(ey>0 or
		(
			(enemy_char~=19 and (enemy_act==0 or (enemy_act>=5 and enemy_act<=10) or (enemy_act>=150 and enemy_act<=153) or (enemy_act>=159 and enemy_act<=162))
			) or
			(enemy_char==19 and ((enemy_act>=1 and enemy_act<=3) or (enemy_act>=154 and enemy_act<=157) or (enemy_act>=163 and enemy_act<=166))
			)
		)
	) and 
	enemy_obj_range_in(150,60)==false and
	my_act<=10 and 
	not(enemy_act>=97 and enemy_act<=98) and 
	not(enemy_act>=197 and enemy_act<=199) and 
	is_dir_front==true and
	(
		(not(enemy_act>=50 and enemy_act<=166)) or (enemy_act>=50 and enemy_act<=166)
	) and 
	subs_count>=530 and nega_count ~= 1 and math.random(4)==1 and 
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*15		<=	170+30 	and
				--(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*15		>=	80-30 	and
				(ey+enemy_yspeed*15+(15*(14*e_gs))/2)	-	(y+my_yspeed*15+(15*(14*m_gs))/2)	<=	150 		and
				(ey+enemy_yspeed*15+(15*(14*e_gs))/2)	-	(y+my_yspeed*15+(15*(14*m_gs))/2)	>=	110-120 	then
		print("対空9HJ>JＡ");
		key_event2(ACT_D,u_front)
		key_reset()
		wait(2)
		key_event(ACT_A);--]]
--対空8HJ>JＡ:14F
	elseif y==0 and 
	(ey>0 or
		(
			(enemy_char~=19 and (enemy_act==0 or (enemy_act>=5 and enemy_act<=10) or (enemy_act>=150 and enemy_act<=153) or (enemy_act>=159 and enemy_act<=162))
			) or
			(enemy_char==19 and ((enemy_act>=1 and enemy_act<=3) or (enemy_act>=154 and enemy_act<=157) or (enemy_act>=163 and enemy_act<=166))
			)
		)
	) and 
	enemy_obj_range_in(150,60)==false and
	my_act<=10 and 
	not(enemy_act>=97 and enemy_act<=98) and 
	not(enemy_act>=197 and enemy_act<=199) and 
	is_dir_front==true and
	(
		(not(enemy_act>=50 and enemy_act<=166)) or (enemy_act>=50 and enemy_act<=166)
	) and 
	subs_count>=530 and nega_count ~= 1 and math.random(4)==1 and 
				(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*15		<=	50+30 	and
				--(ex-x)*my_dir-(my_xspeedEX+enemy_xspeedEX)*15		>=	-40-30 	and
				(ey+enemy_yspeed*15+(15*(14*e_gs))/2)	-	(y+my_yspeed*15+(15*(14*m_gs))/2)	<=	181 		and
				(ey+enemy_yspeed*15+(15*(14*e_gs))/2)	-	(y+my_yspeed*15+(15*(14*m_gs))/2)	>=	121-120 	then
		print("対空8HJ>JＡ");
		key_event2(ACT_D,ACT_UP)
		key_reset()
		wait(2)
		key_event(ACT_A);--]]
--遠距離において、牽制としてC系列を用いる。２C＞C＞６Cでカバー。空中は空中で用いる。J2C＞JC＞J6Cでカバー
--相手の射撃を牽制しつつ、B系列を放出。これを起点に接近
--２Bは対空として強力。
--接近したら、まずはJAを当てる。全てはここから。
--J8Aが当てられるなら、続けてガードさせて有利状況。無理ならば着地。
--ダッシュ２Aや三角飛び、JC生当て、F式からの青山ループなどで固める。
--超反応による、スキマ送りやDC、スペカあり
--ダッシュ＞2Ａ
	elseif dis<=250 and my_act==200 and my_allframe>=10 and ey==0 and enemy_obj_range_in(150,60)==false and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and --get_key_stat2(1,ACT_A)==0 and 
	is_dir_front==true and 
	((not(enemy_act>=50 and enemy_act<=166)and math.random(1)==1) or (enemy_act>=50 and enemy_act<=166)) and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("ダッシュ2Ａ");
		key_event2(ACT_A,ACT_DOWN);
--刻み2Ａ
	elseif (dis<=70+30 or (dis<=120 and my_xspeed>0)) and my_act==303 and ey==0 and my_hitstop<=3 and my_hitstop>=2 and enemy_obj_range_in(150,60)==false and 
	((enemy_act>=143 and enemy_act<=166) or (enemy_act>=50 and enemy_act<=89 and math.random(3)<=2)) and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("刻み2Ａ");
		key_event2(ACT_A,ACT_DOWN);
		wait(3);
--4Ａ
	elseif dis<=120 and y==0 and ey>=10 and ey<=100 and enemy_obj_range_in(150,60)==false and my_act<=10 and (enemy_act~=97 and enemy_act~=98 and enemy_act~=197 and enemy_act~=198 and enemy_act~=199 and enemy_act~=300 and enemy_act~=303 and enemy_act~=320 and enemy_act~=321 and enemy_act~=322 and enemy_act~=330) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("４Ａ");
		key_event2(ACT_A,back);
--2Ａ
	elseif dis<=120 and y==0 and ey<10 and enemy_obj_range_in(150,60)==false and my_act<=10 and (enemy_act~=97 and enemy_act~=98 and enemy_act~=197 and enemy_act~=198 and enemy_act~=199 and enemy_act~=300 and enemy_act~=303 and enemy_act~=320 and enemy_act~=321 and enemy_act~=322 and enemy_act~=330) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("2Ａ");
		key_event2(ACT_A,ACT_DOWN);
--Ａ
	elseif dis<=180 and y==0 and ey<10 and enemy_obj_range_in(150,60)==false and my_act<=10 and (enemy_act~=97 and enemy_act~=98 and enemy_act~=197 and enemy_act~=198 and enemy_act~=199 and enemy_act~=300 and enemy_act~=303 and enemy_act~=320 and enemy_act~=321 and enemy_act~=322 and enemy_act~=330) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("Ａ");
		key_event(ACT_A);
--3Ａ
	elseif dis<=250 and y==0 and ey==0 and enemy_obj_range_in(150,60)==false and my_act<=10 and (enemy_act~=97 and enemy_act~=98 and enemy_act~=197 and enemy_act~=198 and enemy_act~=199 and enemy_act~=300 and enemy_act~=303 and enemy_act~=320 and enemy_act~=321 and enemy_act~=322 and enemy_act~=330) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("3Ａ");
		key_event2(ACT_A,d_front);
--DA
	elseif dis<=250 and y==0 and ey<50 and enemy_obj_range_in(150,60)==false and my_act<=10 and (enemy_act~=97 and enemy_act~=98 and enemy_act~=197 and enemy_act~=198 and enemy_act~=199 and enemy_act~=300 and enemy_act~=303 and enemy_act~=320 and enemy_act~=321 and enemy_act~=322 and enemy_act~=330) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("DA");
		key_on(frontEX());
		key_event2(ACT_D,ACT_A);
--ＤB
	elseif dis<=300 and y==0 and ey<100 and enemy_obj_range_in(150,60)==false and my_act<=10 and (enemy_act~=97 and enemy_act~=98 and enemy_act~=197 and enemy_act~=198 and enemy_act~=199 and enemy_act~=300 and enemy_act~=303 and enemy_act~=320 and enemy_act~=321 and enemy_act~=322 and enemy_act~=330) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("ＤB");
		key_on(frontEX());
		key_event2(ACT_D,ACT_B);
--3A：硬直差し込み
	elseif dis<=300 and y==0 and ey==0 and enemy_obj_range_in(150,60)==false and my_act<=10 and enemy_act>=300 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("硬直差し込み：3A");
		key_event2(ACT_A,d_front);
--B:硬直差し込み
	elseif dis<=500 and y==0 and ey>0 and enemy_obj_range_in(150,60)==false and my_act<=10 and enemy_act>=300 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("硬直差し込み：B");
		key_event(ACT_B);
--５Ｂ
	elseif dis>300 and enemy_obj_range_in(150,60)==false and my_act<=10 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("５Ｂ");
		key_event(ACT_B);
--6Ｂ
	elseif dis>400 and enemy_obj_range_in(150,60)==false and my_act<=10 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("６Ｂ");
		key_event2(ACT_B,front);
--2B：対空
	elseif dis>250 and y==0 and ey-y>=0.7*(ex-x)*my_dir and ey-y<=4*(ex-x)*my_dir and enemy_obj_range_in(150,60)==false and my_act<=10 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("対空：2B");
		key_event2(ACT_B,ACT_DOWN);
--C：対空含む
	elseif dis<250 and ey<=y+240 and ey>=y-200 and enemy_obj_range_in(150,60)==false and my_act<=10 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("条件範囲内：C");
		key_event(ACT_C);
--6C
	elseif dis>400 and y==0 and enemy_obj_range_in(150,60)==false and my_act<=10 and not(enemy_act>=97 and enemy_act<=98) and not(enemy_act>=197 and enemy_act<=199) and is_dir_front==true and subs_count>=530 and nega_count ~= 1 and math.random(4)==1 then
		print("距離４００以上：６C");
		key_event2(ACT_C,front);
--三角飛び(ケイムーブ)
	elseif y==0 and 
	(my_act<=5 or	(my_act>=9 and my_act<=10) or	(my_act>=400 and get_fflags(0,2097152))) and 
	enemy_act<300 and dis<=3000 and ey==0 and 
	math.random(1+2)==1 
	then
		print("三角飛び",dis);
		key_reset();
		key_event2(ACT_D,ACT_UP);
		wait(8);
		if enemy_act<300 then
			if dis>=250 then
				key_event2(ACT_D,d_front);
			elseif dis>=180 then
				key_event2(ACT_D,ACT_DOWN);
			else
				key_event2(ACT_D,d_back);
			end
			wait(3);
			if math.random(5)<=1 then --三角飛びと見せかけた着地
				while y>0 do
					yield();
				end
			end
			if enemy_act<300 and y>0 then
				if dis>=250 then --距離が遠い場合のみ、より低い位置へ移動
					wait(12);
				end
				lvr66();
				print("距離確認",dis);
				wait(16); --最速攻撃
				key_reset();
				print("三角飛び＞JA");
				key_event(ACT_A);
			elseif enemy_act>=300 and y>0 then
				lvr44();
				wait(2);
			end
		end
--]]
--中距離以上からの８ｈｊ
	elseif move_8hjattakeovermidrange_condi()==true then
		print("中距離以上で８ＨＪ");
		key_event2(ACT_D,ACT_UP);
--中距離からのダッシュ
	elseif move_6dattakeovermidrange_condi()==true then
		print("ダッシュ接近");
		key_event2(ACT_D,front);
--低空飛翔で接近
	elseif move_approachbylowflaying_condi()==true then
		move_approachbylowflaying_exe()
--８８３飛翔
	elseif move_approachby883d_condi()==true then
		move_approachby883d_exe()
--▼ 終端運動
--▼ 相手上空へ飛び上がった際の処理
	elseif move_attakeoverhead_condi()==true then
		move_attakeoverhead_exe()
--▼ 終端機動
	--▼ 対台風時
	elseif move_terminationtaihu_condi()==true then
		move_terminationtaihu_exe()
	--▼ 終端機動1
	--台風じゃない時だが…
	elseif move_termination1_condi()==true then
		move_termination1_exe()
	--▼ 終端機動2
	--ただ動く事で自律性を錯覚させる事が目的の機動。静止やラインの設定に大きな根拠はない。
	--霊力が一定の評価を下回った場合、実行しない。
	elseif move_termination2_condi()==true then
		move_termination2_exe()
	end
	
	yield()
end
end