#TouhouDanmakufu
#Title[Harmony Unzan's Fistgasm]
#Text[]
#Image[]
#BackGround[Default]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main
{
	let cx=GetCenterX();
	let bgrot=0;
	let unzan=GetCurrentScriptDirectory~"harmonyunzan.png";
	let harmony=GetCurrentScriptDirectory~"hrng.mp3";
	let bg=GetCurrentScriptDirectory~"b.jpg";
task Unzanspawn
{
	let counter=100;
	let obj=Obj_Create(OBJ_EFFECT);
	let objb=Obj_Create(OBJ_EFFECT);
	Obj_SetPosition(obj, GetClipMinX-100, GetClipMinY-100);
	Obj_SetPosition(objb, GetClipMaxX+100, GetClipMinY-100);
	ObjEffect_SetTexture(obj, unzan);
	ObjEffect_SetTexture(objb, unzan);
	ObjEffect_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_SetPrimitiveType(objb, PRIMITIVE_TRIANGLESTRIP);
	ObjEffect_CreateVertex(obj, 4);
	ObjEffect_CreateVertex(objb, 4);
	ObjEffect_SetVertexUV(obj, 0, 1, 1);
	ObjEffect_SetVertexUV(obj, 1, 299, 1);
	ObjEffect_SetVertexUV(obj, 2, 1, 399);
	ObjEffect_SetVertexUV(obj, 3, 299, 399);
	ObjEffect_SetVertexUV(objb, 0, 1, 1);
	ObjEffect_SetVertexUV(objb, 1, 299, 1);
	ObjEffect_SetVertexUV(objb, 2, 1, 399);
	ObjEffect_SetVertexUV(objb, 3, 299, 399);
	ObjEffect_SetVertexXY(obj, 0, -150, -200);
	ObjEffect_SetVertexXY(obj, 1, 150, -200);
	ObjEffect_SetVertexXY(obj, 2, -150, 200);
	ObjEffect_SetVertexXY(obj, 3, 150, 200);
	ObjEffect_SetVertexXY(objb, 0, -150, -200);
	ObjEffect_SetVertexXY(objb, 1, 150, -200);
	ObjEffect_SetVertexXY(objb, 2, -150, 200);
	ObjEffect_SetVertexXY(objb, 3, 150, 200);
	ObjEffect_SetAngle(obj, 0, 0, 30);
	ObjEffect_SetAngle(objb, 0, 180, 30);
	while(Obj_BeDeleted(obj)==false)
	{
	yield;
	if(counter>-50)
	{
	counter-=3;
	}
	Obj_SetPosition(obj, GetClipMinX-counter, GetClipMinY-counter+100);
	Obj_SetPosition(objb, GetClipMaxX+counter, GetClipMinY-counter+100);
	}
}
task drool
{
	let color=29;
	let angle=0;
	loop
	{
	yield;
	yield;
	yield;
	yield;
	yield;
	color++;
	angle+=15;
	ascent(i in 0..8)
	{
	CreateShotA(1, GetClipMinX+50+10*cos(angle-i*20), GetCenterY+i*25, 30);
	CreateShotA(2, GetClipMaxX-50-10*cos(angle-i*20), GetCenterY+i*25, 30);
	SetShotDataA(1, 0, 0, 0, 0, 0, 0, floor(color));
	SetShotDataA(2, 0, 0, 0, 0, 0, 0, floor(color));
	SetShotKillTime(1, 0);
	SetShotKillTime(2, 0);
	FireShot(1);
	FireShot(2);
	}
	if(color>=79){color-=50;}
	}
}
task fistgasm
{
	yield;
	Unzanspawn;
	PlayMusic(harmony);
	loop(50){yield;}
	drool;
	loop(1180){yield;}

ascent(j in 0..2)
{
	ascent(i in -2..3)
	{
	CreateLaserA(1, GetClipMinX+125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMinX+25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	loop(10){yield;}
	}
	loop(230){yield;}
	ascent(i in -2..3)
	{
	CreateLaserA(1, GetClipMinX+125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMinX+25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	loop(10){yield;}
	}
	loop(200){yield;}
	ascent(i in -2..3)
	{
	CreateLaserA(1, GetClipMinX+125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMinX+25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	loop(10){yield;}
	}
	loop(240){yield;}
	ascent(i in -2..3)
	{
	CreateLaserA(1, GetClipMinX+125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-125, GetCenterY-100, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMinX+25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMinX-125)+i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	CreateLaserA(1, GetClipMaxX-25, GetCenterY-120, 500, 20, 10+j*12, 20);
	SetLaserDataA(1, 0, atan2(GetPlayerY-GetCenterY+100, GetPlayerX-GetClipMaxX+125)-i*15, 0, 0, 0, 0);
	SetShotKillTime(1, 100);
	FireShot(1);
	loop(10){yield;}
	}
	loop(150){yield;}


	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+10, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+20, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+30, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+40, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+50, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+60, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+70, 9+j*12, 0);
	}


	loop(120){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+80, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+90, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+100, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+110, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+120, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+130, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+140, 9+j*12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+150, 9+j*12, 0);
	}
	loop(140){yield;}


	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	loop(50){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	loop(50){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}


	loop(110){yield;}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX+i*60, GetClipMinY, 3, 90, 11+j*12, 0);
	CreateShot01(GetClipMaxX-i*60, GetClipMinY, 3, 90, 11+j*12, 0);
	loop(10){yield;}
	}
	loop(10){yield;}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(15){yield;}
	}
	loop(10){yield;}
	ascent(i in 3..6)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(15){yield;}
	}
	CreateShot01(GetClipMinX, GetClipMinY, 3, atan2(GetPlayerY-GetClipMinY, GetPlayerX-GetClipMinX), 7+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY, 3, atan2(GetPlayerY-GetClipMinY, GetPlayerX-GetClipMaxX), 7+j*12, 0);
	loop(30){yield;}
	CreateShot01(GetClipMinX, GetClipMinY+7*60, 3, 0, 8+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+7*60, 3, 180, 8+j*12, 0);
	loop(30){yield;}


	loop(60){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	loop(50){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	loop(50){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+j*12, 0);
	loop(5){yield;}
	}


	loop(70){yield;}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX+i*60, GetClipMinY, 3, 90, 11+j*12, 0);
	CreateShot01(GetClipMaxX-i*60, GetClipMinY, 3, 90, 11+j*12, 0);
	loop(10){yield;}
	}
	loop(10){yield;}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(15){yield;}
	}
	loop(10){yield;}
	ascent(i in 3..6)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+j*12, 0);
	loop(15){yield;}
	}
	CreateShot01(GetClipMinX, GetClipMinY, 3, atan2(GetPlayerY-GetClipMinY, GetPlayerX-GetClipMinX), 7+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY, 3, atan2(GetPlayerY-GetClipMinY, GetPlayerX-GetClipMaxX), 7+j*12, 0);
	loop(30){yield;}
	CreateShot01(GetClipMinX, GetClipMinY+7*60, 3, 0, 8+j*12, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+7*60, 3, 180, 8+j*12, 0);
	loop(30){yield;}

	loop(660){yield;}
}


	loop(420){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36, 12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+10, 21, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+20, 22, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+30, 23, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+40, 24, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+50, 25, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+60, 26, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+70, 27, 0);
	}


	loop(180){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+80, 12, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+90, 21, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+100, 22, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+110, 23, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+120, 24, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+130, 25, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 2, i*36+140, 26, 0);
	}
	loop(60){yield;}
	ascent(i in 0..10)
	{
	CreateShot01(GetCenterX, GetClipMinY+75, 3, i*36+150, 27, 0);
	}
	loop(280){yield;}
let colors=0;
loop(5)
{
	colors+=12;
	if(colors==24){colors=0;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	loop(50){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	loop(50){yield;}
	ascent(i in 0..4)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 6..8)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}
	ascent(i in 5..8)
	{
	CreateShot01(GetClipMinX, GetClipMaxY-i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMaxY-i*60, 3, 180, 1+i+colors, 0);
	loop(5){yield;}
	}


	loop(80){yield;}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX+i*60, GetClipMinY, 3, 90, 11+colors, 0);
	CreateShot01(GetClipMaxX-i*60, GetClipMinY, 3, 90, 11+colors, 0);
	loop(10){yield;}
	}
	loop(10){yield;}
	ascent(i in 0..3)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(15){yield;}
	}
	loop(10){yield;}
	ascent(i in 3..6)
	{
	CreateShot01(GetClipMinX, GetClipMinY+i*60, 3, 0, 1+i+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+i*60, 3, 180, 1+i+colors, 0);
	loop(15){yield;}
	}
	CreateShot01(GetClipMinX, GetClipMinY, 3, atan2(GetPlayerY-GetClipMinY, GetPlayerX-GetClipMinX), 7+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY, 3, atan2(GetPlayerY-GetClipMinY, GetPlayerX-GetClipMaxX), 7+colors, 0);
	loop(30){yield;}
	CreateShot01(GetClipMinX, GetClipMinY+7*60, 3, 0, 8+colors, 0);
	CreateShot01(GetClipMaxX, GetClipMinY+7*60, 3, 180, 8+colors, 0);
	loop(30){yield;}
	loop(60){yield;}
}
	loop(120){yield;}
	AddLife(-GetLife);

}
	@Initialize
	{
		SetLife(300);
		SetDamageRate(0,0);
		SetTimer(240);
		SetMovePosition02(cx,120,1);
		fistgasm;
		LoadGraphic(unzan);
		LoadGraphic(bg);
		LoadUserShotData("lib\BROFIST_REPLACE\shot_all.txt");
	}
	
	@MainLoop
	{
	yield;
	}
	
	@Finalize
	{
	}
	
	@DrawLoop
	{
	bgrot+=0.5;
	SetTexture(bg);
	SetGraphicRect(0, 0, 800, 800);
	SetGraphicAngle(0, 0, bgrot);
	DrawGraphic(GetCenterX, GetCenterY);
	}
}