--キュピンメモ
--[[
	カードID	106
	
	オブジェID
		270(272)	発生
		436	ホールド
		168	落雷
	
	モーションID
		B版:545
		C版:546


キュピンフレームデータ(B,C共通)……自己計測値なので間違ってるかも
	モーション開始から
		オブジェ(キュピン♪)発生まで		26,22,22,18F(=26+[(lv+1)/2]*(-4))
		ホールド受け付け限界		25,21,21,17F(=オブジェ発生-1F)
		硬直解除まで		60,52,52,48F
	
	ホールドによるストック時間延長の限界
		220,260,300,340(=180+40*Lv)
	
	オブジェ発生から
		ホールドなしでストック解除まで		90F
		ホールドの限界	310,350,390,430(=ホールドなし+ホールド時間延長限界)
	
	ストック解除から
		落雷まで					45F


落雷を当てたときの相手の状態
				モーション値	状態継続F数
	ノーマルヒット	77		60F
	カウンターヒット	77		90F
	上段ガード		153		26F
	下段ガード		157		26F
	空中ガード		158		19F


落雷の攻撃判定……攻撃判定発生から25F間
--]]











--"def_clc.lua"を衣玖さん専用に拡張したもの

require("def_clc.lua");



--攻撃（落雷）が発生するまでの時間
B_prefall = 0;
C_prefall = 0;


--■簡易版：龍神の怒り保持用■
--を基に作成した、龍神の怒り関連のデータ管理用関数
function RnI_clc()
	--[計算用定数群]
	--龍神の怒りモーション開始からオブジェクト生成までの時間
	--「25+math.floor((get_skill_lv(0,6)+1)/2)*(-4)」で計算できるが面倒なのでテーブル作成
	till_making_obj = {[-1]=0;26,22,22,18};
	--ホールドによるストック時間延長の限界
	--「180+get_skill_lv(0,6)*40」で計算できるがtill_making_objに合わせてテーブル作成
	hold_max = {[-1]=0;220,260,300,340};
	
	while true do
		--被ダメモーションをとったら全て初期化
		if get_skill_lv(0,6)<0 or my_act>=50 and my_act<=145 then
			RnI_B = 0;
			B_prefall = 0;
			RnI_C = 0;
			C_prefall = 0;
			
		else	--clc
			--ホールド解除から攻撃発生までの時間の更新
			if B_prefall>0 then
				B_prefall = B_prefall - 1;
			elseif B_prefall<0 then
				B_prefall = 0;
			end
			
			if C_prefall>0 then
				C_prefall = C_prefall - 1;
			elseif C_prefall<0 then
				C_prefall = 0;
			end
			
			--前回の龍神の怒りが残った状態で再び龍神の怒りを使用した際の処理（仮）
			--前回の龍神の怒りを攻撃（落雷）発生済みと扱う
			if my_act==545 and B_prefall>0 and my_frame<4 then
				B_prefall = 0;
			elseif my_act==546 and C_prefall>0 and my_frame<4 then
				C_prefall = 0;
			end
			
			--龍神の怒りホールド継続判定
			--（以下のいずれかが行われたとき、ホールドを終了する）
			--・ホールドボタンから指を離す	→	生成から90F後に攻撃（落雷）の予告が行われ、予告から45F後に攻撃発生
			--・ホールド時間の限界を迎える	→	即座に攻撃（落雷）の予告が行われ、予告から45F後に攻撃発生
			if RnI_B==1 and get_key_stat(ACT_B)==0 and (my_act~=545 or my_frame>till_making_obj[get_skill_lv(0,6)]) then
				print("	放した");
				RnI_B = 0
				--B_prefall = 90 + till_making_obj[get_skill_lv(0,6)] - my_frame;	--//my_act~=545ではmy_fremeを使えない
				B_prefall = 45;	--//（仮）生成から90F経過するまでの時間が足されていない
			elseif B_count>=hold_max[get_skill_lv(0,6)] then
				print("	時間切れ");
				RnI_B = 0
				B_prefall=45;
			end
			if RnI_C==1 and get_key_stat(ACT_C)==0 and (my_act~=546 or my_frame>till_making_obj[get_skill_lv(0,6)]) then
				RnI_C = 0
				--C_prefall = 90 + till_making_obj[get_skill_lv(0,6)] - my_frame;	--//my_act~=545ではmy_fremeを使えない
				C_prefall = 45;	--//（仮）生成から90F経過するまでの時間が足されていない
			elseif C_count>=hold_max[get_skill_lv(0,6)] then
				RnI_C = 0
				C_prefall=45;
			end
			
			--龍神の怒りホールド経過時間の更新
			if RnI_B==1 and get_key_stat(ACT_B)==1 and (my_act~=545 or my_frame>till_making_obj[get_skill_lv(0,6)]) then
				B_count = B_count+1
			else
				B_count = 0
			end
			if RnI_C==1 and get_key_stat(ACT_C)==1 and (my_act~=546 or my_frame>till_making_obj[get_skill_lv(0,6)]) then
				C_count = C_count+1
			else
				C_count = 0
			end
			
		end	--clc
		
		yield();
	end
end



--create_threadを正しく行う関数
function create_thread_iku_clc()
	create_thread("RnI_clc");
	create_thread("calculation");
end

