--#####ėpTu[`W#####
--#ڎ
--#
--#set_preact()
--#@OsǗp
--#@@F@߂lF
--#@@@}`XbhB蓮Ŕz̒loĎg܂B
--#@@@ʓrAϐcalmchecki0ŖA1ŗLjݒ肵ĂƁA
--#@@@Ïԁij[gAOiAށAႪ݁j𓯈sƌȂ܂B
--#
--#check_velocity()
--#@ړxZop
--#@@F@߂lF
--#@@@}`XbhB蓮ŒloĎg܂B
--#
--#get_have_card(player,card_id)
--#@J[hmF
--#@@i01CJ[hIDj@߂lFJ[h
--#@@@player(0ŎA1ő)̎D`FbNĎwID̃J[hԂ܂B
--#
--#use_card(card_id)
--#@w肵J[hg
--#@@iJ[hIDj@߂lF
--#@@@R}h͌n[`BړĨJ[h܂ŎD񂵂Ďgp܂B
--#
--#-----*****	ǉ	*****
--#use_card2(card_id)
--#@w肵J[h2Ȃ(XL𔭓)g
--#@@iJ[hIDj@߂lF
--#@@@R}h͌n[`BړĨJ[h܂ŎD񂵂Ďgp܂B
--#
--#set_card(card_id)
--#@w肵J[h1ڂɃZbgB
--#@@iJ[hIDj@߂lF
--#@@@R}h͌n[`ϐݒnɕς܂Bw肵J[h1ڂɃZbg܂B
--#@@@get_have_card(0,card_id)ĝŒӁB
--#@@@pass_card()ƃZbgŎg܂B
--#
--#escape_card(card_id)
--#@J[h𓦂i\Ȃ2ڂɃZbgj
--#@@iJ[hIDj@߂lF
--#@@@R}h͌n[`ϐݒnɕς܂Bw肵J[h1ڂO܂BႩtFCgɎg
--#@@@get_have_card(0,card_id)ĝŒӁB
--#@@@pass_card()ƃZbgŎg܂B
--#
--#pass_card()
--#@J[h񂷁B}`Xbh
--#@@F@߂lF
--#@@set_cardAescape_cardŎw肵J[hۂɏ̈ʒu܂ő
--#
--#get_dis_backwall()
--#@̕ǂ̋߂
--#@@F@߂lFǂ̋
--#@@@̕ǂ̋i40HjԂ܂B
--#
--#get_dis_frontwall()
--#@O̕ǂ܂ł̋߂
--#@@F@߂lFO̕ǂ܂ł̋
--#@@@O̕ǂ܂ł̋Ԃ܂B
--#
--#get_skill_lv2(player,skill_id)
--#@aJxԂ
--#@@i01CJ[hIDj@߂lFXLLv
--#@@ftHg̃XLLv擾gBg͓łB
--#
--#button_reset()
--#@R}h͕⏕֐Bkey_reset()̃JX^ŁB
--#@@F@߂lF
--#@@@L[͂̂܂܂ŁA{^̂OFF()ɂ܂B
--#
--#BtoN(value)
--#@^Uirʓj01̐lŕԂ
--#@@ir̐^UŌʂ̕Ԃ镨AϐAԂl̂֐Ȃǁj@߂lF01
--#@@@^UlvZɎg悤ɐlɕςĕԂ܂B
--#

--VKz`
my_preact = {0,0,0};
enemy_preact = {0,0,0};
my_preframe = {0,0,0};
enemy_preframe = {0,0,0};
my_preact_name = {0,0,0};
enemy_preact_name = {0,0,0};
my_movecontact = {};
enemy_movecontact = {};
my_x = {};
enemy_x = {};
my_y = {};
enemy_y = {};


--O[oϐ`
set_card_id = nil;
escape_card_id = nil;

my_vel_x=0;
my_vel_y=0;
enemy_vel_x=0;
enemy_vel_y=0;



---Oszmy_preact[0~3]yenemy_preact[0~3]Ɋi[B
--preactName͓KX蓮͂ĂB
function set_preact()	--}`Xbhp
while true do

	if not(my_preact[0]==nil or (my_preact[0]==my_act and my_preframe[0]<=my_frame))then
--OactƈقȂĂA͓actԍłframe߂ĂL^
		if not(calmcheck==1 and my_preact[0]<5 and my_act<5)then
			if(my_preact[0]~=my_act and my_preact_name[0]==my_preact_name[1] and my_preact[0]~=my_preact[1] and my_preact_name[1]==my_preact_name[2])then
				my_preact_name[0] = nil;
			end
			for i=3,1,-1 do
				my_preact[i] = my_preact[i-1];
				my_preframe[i] = my_preframe[i-1];
				my_preact_name[i] = my_preact_name[i-1];
				my_movecontact[i] = my_movecontact[i-1];
			end			
		end
	end
	if not(enemy_preact[0]==nil or (enemy_preact[0]==enemy_act and enemy_preframe[0]<=enemy_frame))then
--OactƈقȂĂA͓actԍłframe߂ĂL^
		if not(calmcheck==1 and enemy_preact[0]<5 and enemy_act<5)then
		
print_d("");
			if(enemy_preact[0]~=enemy_act and enemy_preact_name[0]==enemy_preact_name[1] and enemy_preact[0]~=enemy_preact[1] and enemy_preact_name[1]==enemy_preact_name[2])then
				enemy_preact_name[0] = nil;
			end
			for i=3,1,-1 do
				enemy_preact[i] = enemy_preact[i-1];
				enemy_preframe[i] = enemy_preframe[i-1];
				enemy_preact_name[i] = enemy_preact_name[i-1];
				enemy_movecontact[i] = enemy_movecontact[i-1];
			end
		end
	end

	my_preact[0] = my_act;
	my_preframe[0] = my_frame;
	enemy_preact[0] = enemy_act;
	enemy_preframe[0] = enemy_frame;

--EK[htOłɊoĂ
----*****	elseȉȂƂ1̂܂܂ɂȂĂ܂	*****
	if(my_act>=300 and my_act<690 and my_hitstop==enemy_hitstop and enemy_hitstop>0)then
		my_movecontact[0] = 1;
	else	----
		my_movecontact[0] = 0;	----
	end
	if(enemy_act>=300 and enemy_act<690 and my_hitstop==enemy_hitstop and my_hitstop>0)then
		enemy_movecontact[0] = 1;
	else	----
		enemy_movecontact[0] = 0;----
	end
yield();
end
end


---OWړxZoBuԈړnɂȂ邯ǋCɂȂB
function check_velocity()	--}`Xbhp
while true do
	for i=2,1,-1 do
		my_x[i] = my_x[i-1];
		my_y[i] = my_y[i-1];
		enemy_x[i] = enemy_x[i-1];
		enemy_y[i] = enemy_y[i-1];
	end

	my_x[0] = x;
	my_y[0] = y;
	enemy_x[0] = ex;
	enemy_y[0] = ey;

	if(my_x[1]~=nil and my_x[0]~=nil)then
		my_vel_x = (my_x[0] - my_x[1])*my_dir;
		my_vel_y = my_y[0] - my_y[1];
		enemy_vel_x = (enemy_x[0] - enemy_x[1])*enemy_dir;
		enemy_vel_y = enemy_y[0] - enemy_y[1];
	end
yield();
end
end


---J[hĂ邩ǂ
function get_have_card(player,card_id)
	local count=0;
	for i = 0, 4 do
		if (get_card_id(player,i) == card_id) then
			count = count+1;
		end
	end
	return count;
end


---J[hgB
function use_card(card_id)
	if (my_card == card_id) then
		key_reset();
		key_event(ACT_BC);
		yield();
	elseif (my_card ~= card_id) then
		set_card(card_id);
--		key_on(ACT_AB);
--		wait(2);
--		key_reset();
	end
end


----*****	ǉ	*****
---J[hgBXLJgpɃXL𔭓ȂB
function use_card2(card_id)
	if (my_card == card_id) then
		key_reset();
		key_event2(ACT_DOWN,ACT_BC);
		yield();
	elseif (my_card ~= card_id) then
		set_card(card_id);
--		key_on(ACT_AB);
--		wait(2);
--		key_reset();
	end
end


---J[hZbgB
function set_card(card_id)
	if(seiran_pass_card~=nil and weather==11 and seiran_pass_card<0)then
		return false
	else
		set_card_id = card_id;
	end

--	if(my_card == card_id)then
--		key_off(ACT_AB);
--	elseif(get_have_card(0,card_id)<=0)then
--		key_off(ACT_AB);
--	elseif(my_card ~= card_id)then
--		key_event(ACT_AB);
--		wait(1);
--		key_off(ACT_AB);
--	end
end


---J[h𓦂Bi\Ȃ2ڂɃZbgj
function escape_card(card_id)
	if(seiran_pass_card~=nil and weather==11 and seiran_pass_card<0)then
		return false
	else
		escape_card_id = card_id;
	end

--	if(my_card==card_id and get_have_card(0,card_id)<math.ceil(my_spell))then
--		key_on(ACT_AB);
--		yield();
--	elseif(get_have_card(0,card_id)<=0)then
--
--	elseif(get_card_id(0,1) ~= card_id)then
--		key_on(ACT_AB);
--	end
end


---J[h𑗂
function pass_card()
local pass = false;	----*****	̓[v̊Oɏ	*****
local card_id=nil;	----*****	ŎgĂȂ̂ŁAlocalƐM	*****

while true do
pass = false;
key_off(ACT_AB);

	if(escape_card_id ~= nil)then
		card_id = escape_card_id;
		set_card_id = nil;

		if(my_card==card_id and get_have_card(0,card_id)<math.ceil(my_spell))then
			key_on(ACT_AB);
			pass = true;
		elseif(get_have_card(0,card_id)<=0)then
			key_off(ACT_AB);
			escape_card_id = nil;
		elseif(get_card_id(0,1) ~= card_id)then
			key_on(ACT_AB);
			pass = true;
		end
	elseif(set_card_id ~= nil)then
		card_id = set_card_id;
		if(my_card == card_id)then
			key_off(ACT_AB);
			set_card_id = nil;
		elseif(get_have_card(0,card_id)<=0)then
			key_off(ACT_AB);
		elseif(my_card ~= card_id)then
			key_on(ACT_AB);
			pass = true;
		end
	end

	if(seiran_pass_card~=nil and weather==11 and pass == true)then
		seiran_pass_card = seiran_pass_card-1;
	end
	
yield();
end
end


---̕ǂ̋߂
function get_dis_backwall()
	if(x<ex)then
		return x;
	else
		return (1280-x);
	end	
end


---O̕ǂ܂ł̋߂
function get_dis_frontwall()
	if(x>ex)then
		return x;
	else
		return (1280-x);
	end	
end


---XLLv擾gBaJxԂB
function get_skill_lv2(player,skill_id)
	if(weather == 9 and get_skill_lv(player,skill_id)>=0)then
		return 4;
	else
		return get_skill_lv(player,skill_id);
	end
end


---L[͂̂܂܂ŁA{^̂OFF()ɂ
function button_reset()
	for i=4,9 do
		key_off(i);
	end
end


---_[WƔrāACHۂԂBget_correction(0,32)ftHgŎꂽ߁Apς
function get_CH(standard_damage)

	return get_correction(0,32);

--	if(enemy_act>=50 and enemy_act<=99 and my_combo==1)then
--		if(((enemy_hp+my_dam)>=2000 and my_dam>standard_damage) or ((enemy_hp+my_dam)<2000 and my_dam>standard_damage*0.9))then
--			return true;
--		end
--	end
--	
--	return false;
end


---^U𐔒lɕςĕԂ
function BtoN(value)
	if(value==nil or value==false or value==0)then
		return 0;
	else
		return 1;
	end
end
