function SetMoveBoss(let mFrame){
	let ud = GetPlayerY();
//	ud %= GetStgFrameHeight();
	let mX = ObjMove_GetX(objEnemy) + rand(-24,24);
//	mX %= GetStgFrameWidth();
	let mY = ObjMove_GetY(objEnemy);
//	mY %= GetStgFrameHeight();
	
	if(mX < GetClipMaxX()-170){
		mX = GetClipMaxX()-170;
	}else if(mX > GetClipMaxX()-32){
		mX = GetClipMaxX()-32;
	}
	if(ud < mY){
		mY -= rand(32,48);
		if(mY < GetClipMinY()+32){
			mY = GetClipMinY()+32;
		}
	}else{
		mY += rand(32,48);
		if(mY > GetClipMaxY()-32){
			mY = GetClipMaxY()-32;
		}
	}
	
	mX %= GetStgFrameWidth();
	mY %= GetStgFrameHeight();
	ObjMove_SetDestAtFrame(objEnemy, mX, mY, mFrame);
}

task TimerSE(let time){
	let tFrame = time * 60;
	
	while(tFrame > 59){
		if(tFrame <= 600 && tFrame % 60 == 0){
			PlaySE(pathTimer);
		}
		yield;
		tFrame--;
	}
}

task BackGround(let imgPath, let wid, let hei){
/*	let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	
	Obj_SetRenderPriorityI(obj, 21);
	ObjPrim_SetTexture(obj, imgPath);
	ObjSprite2D_SetSourceRect(obj, 1, 1, wid, hei);
	ObjSprite2D_SetDestCenter(obj);
	ObjRender_SetScaleXYZ(obj, 0.8, 0.8, 1);
	ObjRender_SetPosition(obj, GetStgFrameWidth()/2, GetStgFrameHeight()/2, 0);
	ObjRender_SetAlpha(obj, 128);
	
	while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) > 0){
		yield;
	}
	
	Obj_Delete(obj);
	*/
}

task CutIn(let imgPath, let imgAngle, let imgAlpha, let wid, let hei){
	let seSC = GetCurrentScriptDirectory ~ "./../../se/spellCardStart.wav";
	LoadSound(seSC);
	PlaySE(seSC);
	
	let wait_time = 40;
	let obj = ObjPrim_Create(OBJ_SPRITE_2D);
	
	Obj_SetRenderPriority(obj, 1);
	ObjPrim_SetTexture(obj, imgPath);
	ObjSprite2D_SetSourceRect(obj, 1, 1, wid, hei);
	ObjSprite2D_SetDestCenter(obj);
	ObjRender_SetScaleXYZ(obj, 0.7, 0.7, 1);
	
	if(imgAlpha > 255){
		imgAlpha = 255;
	}else if(imgAlpha < 10){
		imgAlpha = 10;
	}
	
	let set_radius = 160;
	let start_x = 320 + set_radius * cos(imgAngle+180);
	let start_y = 140 + set_radius * sin(imgAngle+180);
	let spd = ((absolute(320 - start_x) ^ 2 + absolute(140 - start_y) ^ 2) ^ 0.5) / wait_time;
	let al = imgAlpha / wait_time;
	
	ObjRender_SetPosition(obj, start_x, start_y, 0);
	
	//o
	let i = 0;
	let set_x = start_x;
	let set_y = start_y;
	while(i < wait_time * 0.95){
		ObjRender_SetAlpha(obj, i*al);
		i++;
		yield;
		set_x += (spd*cos(imgAngle));
		set_y += (spd*sin(imgAngle));
		ObjRender_SetPosition(obj, set_x, set_y, 0);
	}
	//
	i = 0;
	while(i < wait_time * 1.5){
		yield;
		set_x += (0.5*cos(imgAngle));
		set_y += (0.5*sin(imgAngle));
		ObjRender_SetPosition(obj, set_x, set_y, 0);
		i++;
	}
	//
	i = 0;
	while(i < wait_time){
		ObjRender_SetAlpha(obj, imgAlpha - i*al);
		i++;
		yield;
		set_x += (spd*cos(imgAngle));
		set_y += (spd*sin(imgAngle));
		ObjRender_SetPosition(obj, set_x, set_y, 0);
		i++;
	}
	yield;
	
	Obj_Delete(obj);
}

task Render(){
	loop{
		DrawBoss(objEnemy);
		yield;
	}
}

task SetDamageRateType(){
	ObjEnemy_SetDamageRate(objEnemy, 30, 30);
	loop(180){	yield;	}
	
	ObjEnemy_SetDamageRate(objEnemy, 100, 100);
}

task End(let itemFlg){
	while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) > 0){
		yield;
	}
	
	let ex = ObjMove_GetX(objEnemy);
	let ey = ObjMove_GetY(objEnemy);
	ExplosionA(ex, ey, 40, 0.6 , 255, 255, 255);		//jo
	
	//item쐬
//	if(itemFlg){
//		if(IsCommonDataAreaExists(nsStage)){
//			SetScoreItemArray(ex, ey);
//		}
//	}
	
	Obj_Delete(objEnemy);
	
	//oI܂ŒeȂҋ@
	loop(40){
		DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
		yield;
	}
	DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
	CloseScript(GetOwnScriptID());
}

task T_SpellCardBonus(let bonus){
	loop(240){
		yield;
	}
	loop{
		yield;
		bonus -= 15;
		if(bonus < 0){	bonus = 0;	}
		SetCommonData(SPELL_CARD_BONUS,bonus);
	}
}
