local tmp = [];


	// local ret_param = 
	// {
		// title = "",
		// skilltype = 0,
		// startpos = 0,
		// ko = 0,
		// hptype = 0,
		// exstype = 0,
		// enemytype = 0,
		// resettype = 0,
		// grdtype = 0,
		// player = 0,
		// enemy = 0,// ?亇?e?d?乪?佱?丒?|?A?`?F?b?N
		// viewtype = 0, // ?i?^
		// skillcount = 0,
		// skill = [],
		// explanation = "",
		// category = 0,
		// filter = 0,
		// startdistance = 0,
		// recover_air = 1,
		// recover_ground = 1,
		// recover_emergency = 1,
		// stringID = "",
		// enemyguard = 0,
		// endtype = 1, // 乫B?伿???I乬R?i?Y乫e ?p乪亇?丒?e?i?U?W?I???Z?b?g?j
		// dbg_recipe = 0,
		// counterhit = 0, //1:?J?E?乬?^?[?@2:?侎?乬?_???J?E?乬?^?[
		// saveslot = -1, // -1:?c乬R
	// };
	
	
		// local pos = ("pos" in param)? param.pos : 0;
	// local gauge = ("gauge" in param)? param.gauge : 0;
	// local enemy = ("enemy" in param)? param.enemy : 0;
	// local enemy_chr = ("enemy_chr" in param)? param.enemy_chr : -1;
	// local cat = ("cat" in param)? param.cat : 0;
	// local fil = ("fil" in param)? param.fil : 0;
	// local title = ("title" in param)? param.title : "";
	// local start = ("start" in param)? param.start : 0;
	// local start_csv = ("start_csv" in param)? param.start_csv : 0; // csv?E?a?estart?O?乭乫e?`?d?c?E?s?-
	// local end = ("end" in param)? param.end : 0;
	// local expl = ("expl" in param)? param.expl : 0;
	// local poin = ("poin" in param)? param.poin : 0;
	// local hint = ("hint" in param)? param.hint : 0;
	// local step = ("step" in param)? param.step : 0;
	// local player = ("player" in param)? param.player : 0;
	// local stringID = ("stringID" in param)? param.stringID : 0;
	// local tag = ("tag" in param)? param.tag : [];
	// local skilltype = ("skilltype" in param)? param.skilltype : 0;
	// local endtype = ("endtype" in param)? param.endtype : 1;
	// local viewtype = ("viewtype" in param)? param.viewtype : 0;
	// local num = ("num" in param)? param.num : 0; // 侎p?e乭A?c?c乫C侎A
	// local saveslot = ("saveslot" in param)? param.saveslot : -1;
	


// Def_TCName_BNB <- sqfunc.GetExStringText("tutorial_define_tcn000");
// Def_TCName_BNBLv0 <- sqfunc.GetExStringText("tutorial_define_tcn000");
// Def_TCName_BNBLv1 <- sqfunc.GetExStringText("tutorial_define_tcn000");
// Def_TCName_BNBLv2 <- sqfunc.GetExStringText("tutorial_define_tcn000");
// Def_TCName_BNBLv3 <- sqfunc.GetExStringText("tutorial_define_tcn000");
// Def_TCName_SkillCheck <- sqfunc.GetExStringText("tutorial_define_tcn005");
// Def_TCName_Level0 <- sqfunc.GetExStringText("tutorial_define_tcn006");
// Def_TCName_Level1 <- sqfunc.GetExStringText("tutorial_define_tcn007");
// Def_TCName_Level2 <- sqfunc.GetExStringText("tutorial_define_tcn008");
// Def_TCName_Level3 <- sqfunc.GetExStringText("tutorial_define_tcn009");
// Def_TCName_Level3_2 <- sqfunc.GetExStringText("tutorial_define_tcn009"); //190121乫C侎A
// Def_TCName_TacticsLv1 <- sqfunc.GetExStringText("tutorial_define_tcn010");
// Def_TCName_TacticsLv2 <- sqfunc.GetExStringText("tutorial_define_tcn011");
// Def_TCName_TacticsLv3 <- sqfunc.GetExStringText("tutorial_define_tcn012");

// Def_TCInfo_BNBLv0 <- sqfunc.GetExStringText("tutorial_define_tci000");
// Def_TCInfo_BNBLv1 <- sqfunc.GetExStringText("tutorial_define_tci001");
// Def_TCInfo_BNBLv2 <- sqfunc.GetExStringText("tutorial_define_tci002");
// Def_TCInfo_BNBLv3 <- sqfunc.GetExStringText("tutorial_define_tci003");
// Def_TCInfo_Level0 <- sqfunc.GetExStringText("tutorial_define_tci004");
// Def_TCInfo_Level1 <- sqfunc.GetExStringText("tutorial_define_tci005");
// Def_TCInfo_Level2 <- sqfunc.GetExStringText("tutorial_define_tci006");
// Def_TCInfo_Level3 <- sqfunc.GetExStringText("tutorial_define_tci007");
// Def_TCInfo_Level3_2 <- sqfunc.GetExStringText("tutorial_define_tci027"); //190121乫C侎A
// Def_TCInfo_TacticsLv1 <- sqfunc.GetExStringText("tutorial_define_tci008");
// Def_TCInfo_TacticsLv2 <- sqfunc.GetExStringText("tutorial_define_tci009");
// Def_TCInfo_TacticsLv3 <- sqfunc.GetExStringText("tutorial_define_tci010");
// Def_TCInfo_SkillCheck <- sqfunc.GetExStringText("tutorial_define_tci011");

// Def_TCInfo_Title_Rampage <- sqfunc.GetExStringText("tutorial_define_tci012");
// Def_TCInfo_Title_Overhead <- sqfunc.GetExStringText("tutorial_define_tci013");
// Def_TCInfo_Title_Low <- sqfunc.GetExStringText("tutorial_define_tci014");
// Def_TCInfo_Title_TwoSides <- sqfunc.GetExStringText("tutorial_define_tci015");
// Def_TCInfo_Title_Throw <- sqfunc.GetExStringText("tutorial_define_tci016");
// Def_TCInfo_Title_Poke <- sqfunc.GetExStringText("tutorial_define_tci017");
// Def_TCInfo_Title_CommandThrow <- sqfunc.GetExStringText("tutorial_define_tci018");
// Def_TCInfo_Title_Punishment <- sqfunc.GetExStringText("tutorial_define_tci019");
// Def_TCInfo_Title_RampageSmash <- sqfunc.GetExStringText("tutorial_define_tci020");
// Def_TCInfo_Title_Dying <- sqfunc.GetExStringText("tutorial_define_tci021");
// Def_TCInfo_Title_CVO <- sqfunc.GetExStringText("tutorial_define_tci021");
// Def_TCInfo_Title_UseGauge <- sqfunc.GetExStringText("tutorial_define_tci021");
// Def_TCInfo_Title_Antiair <- sqfunc.GetExStringText("tutorial_define_tci024");
// Def_TCInfo_Title_Reversal <- sqfunc.GetExStringText("tutorial_define_tci025");
// Def_TCInfo_Title_VOInsert <- sqfunc.GetExStringText("tutorial_define_tci026");

// Def_Tactics_Title_Footsies <- sqfunc.GetExStringText("tutorial_define_tat000");
// Def_Tactics_Title_Sequence <- sqfunc.GetExStringText("tutorial_define_tat001");
// Def_Tactics_Title_Mixup <- sqfunc.GetExStringText("tutorial_define_tat002");
// Def_Tactics_Title_TwoSides <- sqfunc.GetExStringText("tutorial_define_tat003");
// Def_Tactics_Title_Throw <- sqfunc.GetExStringText("tutorial_define_tat004");
// Def_Tactics_Title_CommandThrow <- sqfunc.GetExStringText("tutorial_define_tat005");
// Def_Tactics_Title_Invincible <- sqfunc.GetExStringText("tutorial_define_tat006");
// Def_Tactics_Title_Antiair <- sqfunc.GetExStringText("tutorial_define_tat007");
// Def_Tactics_Title_BallInvincible <- sqfunc.GetExStringText("tutorial_define_tat008");

// Def_TCInfo_Expl_FastPushBack <- sqfunc.GetExStringText("tutorial_define_tcie000");
// Def_TCInfo_Expl_PokePushBack <- sqfunc.GetExStringText("tutorial_define_tcie001");
// Def_TCInfo_Expl_PokePushBack_Rampage <- sqfunc.GetExStringText("tutorial_define_tcie002");
// Def_TCInfo_Expl_PokePushBack_UseEX <- sqfunc.GetExStringText("tutorial_define_tcie003");
// Def_TCInfo_Expl_PokePushBack_UseIW <- sqfunc.GetExStringText("tutorial_define_tcie004");
// Def_TCInfo_Expl_UseAerial <- sqfunc.GetExStringText("tutorial_define_tcie005");

// Def_TCInfo_Expl_Rampage <- sqfunc.GetExStringText("tutorial_define_tcie006");
// Def_TCInfo_Expl_Assault <- sqfunc.GetExStringText("tutorial_define_tcie007");
// Def_TCInfo_Expl_Poke <- sqfunc.GetExStringText("tutorial_define_tcie008");
// Def_TCInfo_Expl_Overhead <- sqfunc.GetExStringText("tutorial_define_tcie009");
// Def_TCInfo_Expl_Low <- sqfunc.GetExStringText("tutorial_define_tcie010");
// Def_TCInfo_Expl_TwoSides <- sqfunc.GetExStringText("tutorial_define_tcie011");
// Def_TCInfo_Expl_Throw <- sqfunc.GetExStringText("tutorial_define_tcie012");
// Def_TCInfo_Expl_CommandThrow <- sqfunc.GetExStringText("tutorial_define_tcie013");
// Def_TCInfo_Expl_Punishment <- sqfunc.GetExStringText("tutorial_define_tcie014");
// Def_TCInfo_Expl_UseGauge <- sqfunc.GetExStringText("tutorial_define_tcie015");
// Def_TCInfo_Expl_CVO <- sqfunc.GetExStringText("tutorial_define_tcie016");
// Def_TCInfo_Expl_Dying <- sqfunc.GetExStringText("tutorial_define_tcie017");
// Def_TCInfo_Expl_RampageSmash <- sqfunc.GetExStringText("tutorial_define_tcie018");
// Def_TCInfo_Expl_Antiair <- sqfunc.GetExStringText("tutorial_define_tcie019");
// Def_TCInfo_Expl_Reversal <- sqfunc.GetExStringText("tutorial_define_tcie020");
// Def_TCInfo_Expl_VOInsert <- sqfunc.GetExStringText("tutorial_define_tcie021");
// Def_TCInfo_Expl_ChangePosSide <- sqfunc.GetExStringText("tutorial_define_tcie024");
// Def_TCInfo_Expl_CarryingEnemy <- sqfunc.GetExStringText("tutorial_define_tcie025");
// Def_TCInfo_Expl_WhiffEnemyThrow <- sqfunc.GetExStringText("tutorial_define_tcie026");
// Def_TCInfo_Expl_TrapStart <- sqfunc.GetExStringText("tutorial_define_tcie027");

// Def_TCInfo_Expl_SkillTactics <- sqfunc.GetExStringText("tutorial_define_tcie022");
// Def_TCInfo_Expl_BattleTactics <- sqfunc.GetExStringText("tutorial_define_tcie023");

// enemy = "",
// 棫 mid
// 孅 low

// pos = "",

// none Super Close


// 抂 Corner Close
// 抂旝嬤 Corner Away
// 抂旝墦 Corner Midway
// 抂墦 Corner Far
// 抂攚晧偄 Cornered Close
// 懳嬻 cLOSE???
// 拞墰 Super Close
// 旝嬤 Close

// 旝拞 Medium
// 旝墦 Medium (just a tiny bit farther)

// 拞墰旝墦 also close??
// 嬤嫍棧 Close?
// 拞墰嬤 Same as Close?
// 拞嫍棧 Round Start
// 墦嫍棧 Fullscreen
// 拞墰拞嫍棧 Farther
// 拞墰墦 Fullscreen


{	tmp.append( { title=Def_TCName_BNBLv0,
	cat=Def_TCNum_Level0,
	enemy = "棫",
	pos = "拞墰",
	stringID="schizotest",
	expl = Def_TCInfo_Expl_FastPushBack,
	skill={ recipe = ["2A","2B","C","2C"] }, } );
}

{	tmp.append( { title=Def_TCName_BNBLv0,
	cat=Def_TCNum_Level0,
	enemy = "棫",
	pos = "旝嬤",
	stringID="rie_lv0_fastpushback01",
	expl = Def_TCInfo_Expl_FastPushBack,
	skill={ recipe = ["2C","i6B","B","3B","iJC","2B","236B"] }, } );
}
{	tmp.append( { title=Def_TCName_BNBLv0,
	cat=Def_TCNum_Level0,
	pos = "拞墰拞嫍棧",
	stringID="rie_lv0_fastpushback01",
	expl = Def_TCInfo_Expl_FastPushBack,
	skill={ recipe = ["i214B","66C","236B"] }, } );
}
{	tmp.append( { title=Def_TCName_BNBLv0,
	cat=Def_TCNum_Level0,
	enemy = "棫",
	pos = "拞墰墦",
	stringID="rie_lv0_fastpushback01",
	expl = Def_TCInfo_Expl_FastPushBack,
	skill={ recipe = ["2A","2B","C","2C"] }, } );
}
{	tmp.append( { title=Def_TCName_BNBLv0,
	cat=Def_TCNum_Level0,
	enemy = "棫",
	pos = "懳嬻",
	stringID="rie_lv0_fastpushback01",
	expl = Def_TCInfo_Expl_FastPushBack,
	skill={ recipe = ["2A","2B","C","2C"] }, } );
}

// 愴弍巜撿
{	tmp.append( { title =  Def_Tactics_Title_Footsies,
	cat = Def_TCNum_TacticsLv1,
	expl = Def_TCInfo_Expl_BattleTactics,
	stringID = "rie_tactics_footsies",
	endtype = 1,
	start_csv = 1,//CSV偺掕媊偁傝
skill= { recipe = [
		{ skill="B", add={ reset=0 } },
		{ skill="2B", add={ reset=0 } },
		{ skill="C", add={ reset=0 } },
		{ skill="2C", add={ reset=0 } },
		{ skill="66C", add={ reset=0 } },
		{ skill="236B", add={ reset=0 } },
		] }
	} );
}

// 愴弍巜撿
{	tmp.append( { title =  Def_Tactics_Title_Sequence,
	cat = Def_TCNum_TacticsLv1,
	expl = Def_TCInfo_Expl_BattleTactics,
	stringID = "rie_tactics_pressure",
	enemy="COM",
	
	skilltype = 0,//1僗僥僢僾偢偮僠僃僢僋
	endtype = 1,
	viewtype = 0, //栴宆
	start_csv = 1,//CSV偺掕媊偁傝
skill= { recipe = [
		// 僈乕僪帪偺屌傔楢実
		{ skill="B", add={ reset=3, instext=TCW_Pressure_Guard } },
		{ skill="2B", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="C", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="2C", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="22A", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="checkpoint" },
		// 僸僢僩帪偺屌傔楢実
		{ skill="rB", add={ instext=TCW_Pressure_Hit } },
		{ skill="2B", add={ postype=1 } },
		{ skill="C", add={ postype=1 } },
		{ skill="2C", add={ postype=1 } },
		{ skill="6C", add={ postype=1 } },
		{ skill="236A", add={ postype=1 } },
		{ skill=">236_AddA", add={ postype=1 } },
		{ skill=">236Add_AddA", add={ postype=1 } },
		] }
	} );
}

// 愴弍巜撿
{	tmp.append( { title =  Def_Tactics_Title_Mixup,
	cat = Def_TCNum_TacticsLv1,
	expl = Def_TCInfo_Expl_BattleTactics,
	stringID = "rie_tactics_mixup",
	enemy="COM",
	gauge="CS",

	skilltype = 0,//1僗僥僢僾偢偮僠僃僢僋
	endtype = 1,
	viewtype = 0, //栴宆
	start_csv = 1,//CSV偺掕媊偁傝

skill= { recipe = [
		{ skill="B", add={ reset=3, resetX=(1<<8), postype=1, instext=TCW_Mixup_Low } },
		{ skill="2B", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="2C", add={ reset=3, resetX=(1<<8), postype=1, mvcode1=def_MC1_SidouHitSkill } },
		{ skill="checkpoint" }
		
		{ skill="rB", add={ reset=3, instext=TCW_Mixup_Overhead } },
		{ skill="2B", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="iC", add={ reset=3, resetX=(1<<8), postype=1, mvcode1=def_MC1_SidouHitSkill } },
		{ skill="checkpoint" }
		
		{ skill="rB", add={ reset=3, instext=TCW_Mixup_Overhead } },
		{ skill="2B", add={ reset=3, resetX=(1<<8), postype=1 } },
		{ skill="i6C", add={ reset=3, resetX=(1<<8), postype=1, mvcode1=def_MC1_SidouHitSkill } },
		{ skill="checkpoint" }
		] }
	} );
}

{	tmp.append( { title =  Def_Tactics_Title_Invincible,
	cat = Def_TCNum_TacticsLv1,
	expl = Def_TCInfo_Expl_BattleTactics,
	gauge = "EXCS",
	stringID = "ori_tactics_invincible",
	enemy="COM",
	
	endtype=1,
	start_csv = 1,//CSV偺掕媊偁傝

skill= { recipe = [
		{ skill="623B", add={ mvcode1=def_MC1_SidouHitSkill } },
		{ skill="623EX", add={ mvcode1=def_MC1_SidouHitSkill } },
		{ skill="236EX", add={ mvcode1=def_MC1_SidouHitSkill } },
		] }
	} );
}

{	tmp.append( { title =  Def_Tactics_Title_Antiair,
	cat = Def_TCNum_TacticsLv1,
	expl = Def_TCInfo_Expl_BattleTactics,
	stringID = "ori_tactics_antiair",
	enemy="COM",
	
	skilltype = 0,//1僗僥僢僾偢偮僠僃僢僋
	endtype = 1,
	viewtype = 0, //栴宆
	start_csv = 1,//CSV偺掕媊偁傝
skill= { recipe = [
		{ skill="3B", },
		{ skill="diJC", add={ postype=1 } },
		{ skill="checkpoint" },
		{ skill="JAD", },
		{ skill="checkpoint" },
		{ skill="3B", },
		{ skill="JAD", add={ postype=1 } },
		{ skill="checkpoint" },
		] }
	} );
}

// 愴弍巜撿
{	tmp.append( { title =  Def_Tactics_Title_BallInvincible,
	cat = Def_TCNum_TacticsLv1,
	expl = Def_TCInfo_Expl_BattleTactics,
	stringID = "rie_tactics_ball_invincible",
	gauge="EX",
	enemy="COM",
	enemy_chr=Def_ChrNo_Hyd,
	
	skilltype = 0,//1僗僥僢僾偢偮僠僃僢僋
	endtype = 1,
	viewtype = 0, //栴宆
	start_csv = 1,//CSV偺掕媊偁傝	

skill= { recipe = [
		{ skill="B+C", add={ mvcode1=def_MC1_TutoBallMuteki|def_MC1_SidouHitSkill, instext=TCW_BallInvincible } },
		{ skill="checkpoint" },
		{ skill="r236EX", add={ mvcode1=def_MC1_TutoBallMuteki|def_MC1_SidouHitSkill, instext=TCW_BallInvincible } },
		{ skill="checkpoint" },
		] }
	} );
}

Table  <- GetMissionListTable(); // 儈僢僔儑儞偺僇僥僑儕乕偺掕媊偼嫟捠

local skillParam = 
{
	charaNo = Def_ChrNo_Ries,
}

Table.listcount = tmp.len();
Table.list.resize( Table.listcount );
for( local i=0; i<tmp.len(); i++ )
{
	if( "skill" in tmp[i] )
	{
		tmp[i].skill.param <- skillParam;
	}
	tmp[i].player <- Def_ChrNo_Ries;
	tmp[i].num <- i;
	local skillTable = GetSkillCheckTable( tmp[i] );
	Table.list[i] = skillTable;
}

