
let tex_system=GetCurrentScriptDirectory~".\..\..\..\ImageData\Tex_System.png";
let tex_targeting=GetCurrentScriptDirectory~".\..\..\..\ImageData\Tex_Target.png";
let tex_charge=GetCurrentScriptDirectory~".\..\..\..\ImageData\Tex_ChargeEffect.png";

let sedir=GetCurrentScriptDirectory~".\..\..\..\SoundData\SE\";
let systemse=[sedir~"cursor31.wav",
			  sedir~"cursor28.wav",
			  sedir~"cursor22.wav"];

function EnemyInitialize(let life)
{
	SetX(enemyposx);
	SetY(enemyposy);
	SetAngle(enemyangle);
	SetSpeed(enemyspeed);
	SetLife(life+lifelimit);
	LoadGraphic(tex_enemy);
	LoadGraphic(tex_crest);
	if(GetPlayerType==REIMU_A){SetInvincibility(20);}
	
	alternative(GetCommonDataDefault("PlayMode",MODE_STANDARD))
	case(MODE_STANDARD){MainThread_Standard;}
	case(MODE_ADVANCED){MainThread_Advanced;}
	case(MODE_UNLIMITED){MainThread_Unlimited;}
	others{}
}


function EnemyBossInitialize
{
	SetX(enemyposx);
	SetY(enemyposy);
	SetAngle(enemyangle);
	SetSpeed(enemyspeed);
	LoadGraphic(tex_enemy);
	LoadGraphic(tex_spellbg);
	LoadGraphic(tex_system);
	LoadGraphic(tex_targeting);
	LoadGraphic(tex_crest);
	LoadGraphic(tex_charge);
	ascent(a in 0..length(systemse)){LoadSE(systemse[a]);}
	SetShotAutoDeleteClip(32,32,32,32);
	
	SetCommonData("BossLifeMax",GetEnemyLife);
	SetCommonData("BossFlg",true);
	
	alternative(GetCommonDataDefault("PlayMode",MODE_STANDARD))
	case(MODE_STANDARD){MainThread_Standard;}
	case(MODE_ADVANCED){MainThread_Advanced;}
	case(MODE_UNLIMITED){MainThread_Unlimited;}
	others{}
	if(GetCommonDataDefault("SinglePlayFlg",true)){VanishEnemy;}
	if(GetCommonDataDefault("SpellPractice_Mode",false)){BossVanishSystem_SP;}
}

task BossVanishSystem_SP
{
	loop
	{
		while(GetPlayerLife!=0 && OnPlayerMissed==false){yield;}
		VanishEnemy;
		while(GetPlayerLife==0 || OnPlayerMissed==true){yield;}
		yield;
	}
}
