----##### th105_ai_lib_20090203WaitEx̑(ǉύX_͍ŉ) #####
--damaged , waitEx , waitEx2 , waitTachi , waitMotion

--@\F_ǂ肷
--		function my_damaged()
--
--@\Fwt[yieldJԂ
--		function waitEx(waitCount, exception, ...)
--
--@\FwaitExsAfꂽL[Zbg
--		function waitEx2(waitCount, exception, ...)
--
--@\FL[ZbgAԂɂȂ܂yieldJԂ
--		function waitTachi()
--
--@\F̃[VɂȂ܂yieldJԂ
--		function waitMotion(motion)



--萔
MOTION_TACHI = 0	--

--@\F_ǂ肷
function my_damaged()
	return my_act>=50 and my_act<200
end

--@\Fwt[yieldJԂ
--߂lFŗ^ꂽ֐exception̖߂l
--exception(...)̖߂l^(true)̏ꍇA̎_wait𒆒fċU(false)Ԃ
--fɍŌ܂waitꍇA^(true)Ԃ
function waitEx(waitCount, exception, ...)
	local excCode = 0	--ŗ^ꂽ֐exception̖߂li[
	local counter		--yieldJԂpJE^
	
	for counter = 1, waitCount do
		if exception and exception(...) then
			return false
		end
		yield()
	end
	return true
end

--@\FwaitExsAfꂽL[Zbg
--߂lFswaitEx̖߂l
function waitEx2(waitCount, exception, ...)
	--cĉ܂ܐ^Ԃ
	if waitEx(waitCount, exception, ...) then
		return true;
	--fccL[ZbgĂUԂ
	else
		key_reset();
		yield();
		return false;
	end
end

--@\FL[ZbgAԂɂȂ܂yieldJԂ
function waitTachi()
	--Ƃ肠L[ZbgĂ
	key_reset();
	while my_act ~= MOTION_TACHI do
		--_狭I
		if my_damaged() then
			return false;
		end
		yield()
	end
	--
	return true;
end

--@\F̃[VɂȂ܂yieldJԂ
function waitMotion(motion,_times)
	--_timesōő僋[v񐔂włBw肵Ȃꍇ͓KȒlŁB
	--[v񐔂𐧌͈̂Ŝ߁BȂƈꐶ[vƂʂɗL蓾B
	local times=_times or 60
	for i=1,times do
		--w肵[VɂȂ犮
		if my_act == motion then
			return true
		--_狭I
		elseif my_damaged() then
			return false
		end
		yield();
	end
	--ő僋[v񐔂𒴂Ăw肵[VɂȂȂ
	return waitTachi();	--(͔_)ɂȂ܂őҋ@
end



----##### ǉύX_ #####
----[ύX]
----waitEX
----E֐exceptionɔCӂ̈n悤ύX
----E߂ltrue()false(f)ɕύX
----waitTachi
----EsOɃL[Zbg悤ύX
----Esɔ_炷ɒf悤ύX
----E߂ltrue()false(f)ɕύX
----[ǉ]
----waitEX2
----EwaitExƂقړl
----EfꍇɃL[ZbgsƂ낪قȂ
----waitMotion
----EwaitTachi̔CӃ[V
----EwaitTachiƈقȂAJnÕL[Zbg͍sȂ
----	̂waitTachi()waitMotion(0)́AL[Zbg邩ȂňقȂ
----E莞Ԃo߂waitTachi()ɐ؂ւ
