//Ability

function MainShot{//X,Y,Ag,Sp,Id,Pow,Penetra,Type,Type2
	if(RapShot){
		alternative(ST)
		case(0){yield;}
		case(1){//Ch1
			Asj(5,    15*cos(counter*45),-30,270,25, 1,2,5,0,0);
			Asj(5,   -15*cos(counter*45),-30,270,25, 1,2,5,0,0);
			Asj(5, 40+15*cos(counter*30),  0,275,25, 1,2,5,0,0);
			Asj(5,-40-15*cos(counter*30),  0,265,25, 1,2,5,0,0);
		}
		case(2){Asj(5,0,-20,270,30, 9,2,10,0,0);}//Xg[g1
		case(3){//Ch2
			Asj(4,  0,-20,270,25,28,2,5,0,0);
			Asj(4,-20,-20,250,25,28,2,5,0,0);
			Asj(4,+20,-20,290,25,28,2,5,0,0);
		}
		case(4){Asj(3,0,-5,270,35,34,3,2,0,0);}//Xg[g2
		case(5){Asj(6,0,-10,270,25,37,6,2,0,0);}//Xg[g3
		case(6){//Ch3
			Asj(8,-25,-20,270,25,41,1,10,0,0);
			Asj(8, 25,-20,270,25,41,1,10,0,0);
		}
		case(8){//Ch4
			Asj(8,  0,-20,270,35, 48,2,2,0,0);
			Asj(8, 20,-10,285,35, 48,2,2,0,0);
			Asj(8,-20,-10,255,35, 48,2,2,0,0);
		}
		case(9){Asj(7,0,-10,270,55,56,8,10,0,0);}//Xg[g4
		case(10){Asj(7,0,-10,270,45,62,10,2,0,0);}//Xg[g5
		case(11){Asj(10,0,-10,270,40,68,9,5,0,0);}//Xg[g6
		case(12){Asj(5,0,0,270,50, 73,4,5,0,0);}//Xg[g7
		case(14){Asj2(0,-20,270,40,76,5,5,0,0);}//Xg[g8
		case(15,16){//Ch5
			Asj2(  0,-20,270,30,83,1,2,0,0);
			Asj2( 15,-10,275,30,86,1,2,0,0);
			Asj2(-15,-10,265,30,86,1,2,0,0);
			Asj2( 20,-10,280,30,86,1,2,0,0);
			Asj2(-20,-10,260,30,86,1,2,0,0);
		}
		case(17){//Ch6
			Asj2( 15,-40,272,35,98,2,1,0,0);
			Asj2(-15,-40,268,35,98,2,1,0,0);
			Asj2( 35,0,275,35,101,1,2,0,0);
			Asj2(-35,0,265,35,101,1,2,0,0);
		}
		case(18){Asj(5,0,0,270,40,105,7,3,0,0);}//Xg[g10
		case(19,20){Asj2(0,-20,270,45,107,3,8,0,0);}//Xg[g11
		case(21){Asj(3,0,0,270,40,119,4,5,0,0);}//Xg[g12
		case(22){//Ch7
			Asj2(  0,-20,270,40,113,2,2,0,0);
			Asj2( 15,-10,275,40,116,2,2,0,0);
			Asj2(-15,-10,265,40,116,2,2,0,0);
			Asj2( 20,-10,280,40,116,2,2,0,0);
			Asj2(-20,-10,260,40,116,2,2,0,0);
		}
		case(23){Asj2(0,-20,270,35,126,4,2,0,0);}//Xg[g13
		case(25){//Ch8
			Asj(5,  0,-20,270+sag,30,130,4,2,0,0);
			Asj(5, 20,-20,280+sag,30,130,4,2,0,0);
			Asj(5,-20,-20,260+sag,30,130,4,2,0,0);
		}
		case(26){//Xg[g14
			Asj(8,-14,-8,265,15,10,1,5,0,0);
			Asj(8, 14,-8,275,15,10,1,5,0,0);
		}
		case(27){Asj(5,0,-20,270,20,139,1,10,0,0);}//Xg[g15
		case(28){Asj(4,0,-20,270,25,141,2,5,0,0);}//Xg[g16
		case(29){Asj(3,15*cos(counter*45),-30,270,30,152,2,5,0,0);}//Xg[g17
		case(30){Asj(3,0,-30,270,30,157,3,2,34,0);}//Xg[g18
		case(32){Asj(60,0,-30,270,10,163,1,1,2,5);}//lIt@C[rbg
		case(33){//Ch9
			Asj(5,  0,-20,270,20,165,4,2,0,0);
			Asj(5, 40,0,275,20,165,4,2,0,0);
			Asj(5,-40,0,265,20,165,4,2,0,0);
		}
		case(34){//Ag~bNp`		
			alternative(counter%40)
			case(0){
				Guard(11,0,GetPlayerX-20,0);
				Guard(11,0,GetPlayerX+20,0);
			}
		}
		case(35){//bv[U[
			alternative(counter%10)
			case(0){
				Soj(GetPlayerX, GetPlayerY-30,270,10,174,3,10,15,175);
				PlaySE(SE[34]);
			}
		}
		case(36){//Ch10(ArA}WbN)
			Asj2( 10,-20,270,30,178,1,2,0,0);
			Asj2(-10,-20,270,30,178,1,2,0,0);
			Asj2( 25,-10,275,30,178,1,2,0,0);
			Asj2(-25,-10,265,30,178,1,2,0,0);
			Asj2( 50,-10,280,30,178,1,2,0,0);
			Asj2(-50,-10,260,30,178,1,2,0,0);
		}
		case(38){//Ch11
			Asj(4,  0,-20,270,35,184,2,2,0,0);
			Asj(4, 20,-10,280,35,185,2,2,0,0);
			Asj(4,-20,-10,260,35,185,2,2,0,0);
		}
		case(39){//Ch12
			Asj(3,  0,-20,270,37,188,3/2,3,0,0);
			Asj(3, 20,-15,272,37,189,1,3,0,0);
			Asj(3,-20,-15,268,37,189,1,3,0,0);
			Asj(3, 30,-10,274,37,190,1,3,0,0);
			Asj(3,-30,-10,266,37,190,1,3,0,0);
			Asj(3, 40,  0,276,37,191,1/2,3,0,0);
			Asj(3,-40,  0,266,37,191,1/2,3,0,0);
		}
		case(40){Asj(4,  0,-20,270,35,195,2,2,0,0);}//Xg[g19
		case(41){Asj(3,  0,-20,270,37,203,3/2,5,0,0);}//Xg[g20
		case(42){//Ch13
			Asj(5, 0, -20,270,33,207,5/2,4,0,0);
			Asj(5, 10,-5,272,33,208,2,4,0,0);
			Asj(5,-10,-5,268,33,208,2,4,0,0);
			Asj(5, 20,10,274,33,209,1,4,0,0);
			Asj(5,-20,10,266,33,209,1,4,0,0);
		}
		case(43){Asj(5,  0,-20,270,33,210,3,3,0,0);}//Xg[g21
		case(45){//Xg[g22
			Asj(5,-20,-20,270,20,139,1,10,0,0);
			Asj(5, 20,-20,270,20,139,1,10,0,0);
		}
		case(46){Asj2(0,-20,270,40,76,5,4,0,0);}//Xg[g23
		case(47){//Ch14
			Asj(5,  0,-20,270,30,211,4,2,0,0);
			Asj(5, 20,-20,280,30,211,4,2,0,0);
			Asj(5,-20,-20,260,30,211,4,2,0,0);
		}
		case(48){Asj(6,  0,-20,270,21,214,7,4,0,0);}//Xg[g24
		case(49){Asj(4,  0,-20,270,25,220,3,2,0,0);}//Xg[g25
		case(50){//Ch15
			Asj(6,  0,-40,270,37,226,2,5,0,0);
			Asj(6, 15,-20,275,37,227,1/2,5,0,0);
			Asj(6,-15,-20,265,37,227,1/2,5,0,0);
			Asj(6, 25,-20,280,37,227,1/2,5,0,0);
			Asj(6,-25,-20,260,37,227,1/2,5,0,0);
			Asj(6, 35,-20,285,37,228,2,5,0,0);
			Asj(6,-35,-20,255,37,228,2,5,0,0);
		}
		case(51){Asj(5,  15*cos(counter*30),-20,270,23,233,5,6,0,0);}//Xg[g26
	}
}
function SubShot{
	if(RapShot){
		alternative(UT)
		case(0){yield;}
		case(1){//e
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-10, GetPlayerY-20,260,10, 2,2,2,2,1);
				Soj(GetPlayerX+10, GetPlayerY-20,280,10, 2,2,2,2,1);
				Soj(GetPlayerX-30, GetPlayerY-20,230,10, 2,2,2,2,1);
				Soj(GetPlayerX+30, GetPlayerY-20,310,10, 2,2,2,2,1);
			}
		}
		case(2){//}
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-55, GetPlayerY,270,10, 10,3,2,5,0);
				Soj(GetPlayerX+55, GetPlayerY,270,10, 10,3,2,5,0);
				PlaySE(SE[53]);
			}
		}
		case(3){//J[
			alternative(counter%40)
			case(0){
				Soj(GetPlayerX, GetPlayerY+20, 70, 8,29,1,10,8,5);
				Soj(GetPlayerX, GetPlayerY+20,110, 8,29,1,10,8,-5);
			}
		}		
		case(4){//A[
			alternative(counter%20)
			case(0){Soj(GetPlayerX, GetPlayerY,270,10,35,2,10,2,1);}
		}
		case(5){//
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-30, GetPlayerY-30,270,0,38,2,10,10,2);
				Soj(GetPlayerX+30, GetPlayerY-30,270,0,38,2,10,10,3);
				Soj(GetPlayerX-30, GetPlayerY+30,270,0,38,2,10,10,1);
				Soj(GetPlayerX+30, GetPlayerY+30,270,0,38,2,10,10,0);
				PlaySE(SE[49]);
			}
		}
		case(6){//GLe
			alternative(counter%5)
			case(0){
				Soj(GetPlayerX-50, GetPlayerY-10,270,0,42,2,10,11,0);
				Soj(GetPlayerX+50, GetPlayerY-10,270,0,43,2,10,11,1);
				Soj(GetPlayerX-66, GetPlayerY-43,270,30,44,1,10,0,0);
				Soj(GetPlayerX+66, GetPlayerY-43,270,30,45,1,10,0,0);
				Soj(GetPlayerX-76, GetPlayerY-40,225,30,44,1,10,0,0);
				Soj(GetPlayerX+76, GetPlayerY-40,315,30,45,1,10,0,0);
				PlaySE(SE[57]);
			}
		}
		case(8){//V[eBOX^[
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX+10,GetPlayerY-10,280,8,49,2,2,13,0);
				Soj(GetPlayerX-10,GetPlayerY-10,260,8,49,2,2,13,0);
				Soj(GetPlayerX+20,   GetPlayerY,290,8,49,2,2,13,0);
				Soj(GetPlayerX-20,   GetPlayerY,250,8,49,2,2,13,0);
				Soj(GetPlayerX+30,GetPlayerY+10,300,8,49,2,2,13,0);
				Soj(GetPlayerX-30,GetPlayerY+10,240,8,49,2,2,13,0);
				PlaySE(SE[29]);
			}
		}
		case(9){//eX1
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-32, GetPlayerY-30,270,10, 57,3,2,15,58);
				Soj(GetPlayerX+32, GetPlayerY-30,270,10, 57,3,2,15,58);
				PlaySE(SE[34]);
			}
		}
		case(10){//C\E
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-55, GetPlayerY,270,0, 63,4,2,16,-55);
				Soj(GetPlayerX+55, GetPlayerY,270,0, 63,4,2,16,55);
				PlaySE(SE[40]);
			}
		}
		case(11){//|Pbg
			alternative(counter%10)
			case(0){
				Soj(GetPlayerX+20+10*cos(counter*60), GetPlayerY-5,270,15,69,1,10,2,8);
				Soj(GetPlayerX-20-10*cos(counter*60), GetPlayerY-5,270,15,69,1,10,2,8);
				PlaySE(SE[6]);
			}
		}
		case(12){//oiX[U[
			alternative(counter)
			case(1){Soj(GetPlayerX, GetPlayerY,270,0,74,2,200,20,0);}
			case(6){
				Soj(GetPlayerX,GetPlayerY,275,0,75,4,100,21,1);
				Soj(GetPlayerX,GetPlayerY,275,0,75,4,100,21,2);
				Soj(GetPlayerX,GetPlayerY,265,0,75,4,100,21,3);
				Soj(GetPlayerX,GetPlayerY,265,0,75,4,100,21,4);
				PlaySE(SE[46]);
			}
		}
		case(14){//z[~O~TC
			alternative(counter%40)
			case(0){
				Soj(GetPlayerX-10, GetPlayerY-20,270,10,79,1,50,22,10);
				Soj(GetPlayerX+10, GetPlayerY-20,270,10,79,1,50,22,10);
				Soj(GetPlayerX-30, GetPlayerY,270,10,79,1,50,22,10);
				Soj(GetPlayerX+30, GetPlayerY,270,10,79,1,50,22,10);
			}
		}			
		case(15){//A˃Pbge(4)
			alternative(counter%20)
			case(0){
				Soj(GetPlayerX-10,GetPlayerY-20,270,15,89,1,50,2,10);
				Soj(GetPlayerX+10,GetPlayerY-20,270,15,89,1,50,2,10);
				Soj(GetPlayerX-30,   GetPlayerY,270,15,89,1,50,2,10);
				Soj(GetPlayerX+30,   GetPlayerY,270,15,89,1,50,2,10);
			}
		}
		case(16){//T[`[U[
			alternative(counter%15)
			case(0){
				Soj(GetPlayerX-22, GetPlayerY+8,255,20,93,1,50,24,0);
				Soj(GetPlayerX+22, GetPlayerY+8,285,20,93,1,50,24,0);
				Soj(GetPlayerX-22, GetPlayerY+8,245,20,93,1,50,24,0);
				Soj(GetPlayerX+22, GetPlayerY+8,295,20,93,1,50,24,0);
				PlaySE(SE[107]);
			}
		}
		case(17,18){//q[g~TC()
			alternative(counter%20)
			case(0){
				Soj(GetPlayerX-15, GetPlayerY-20,270,15,104,1,50,18,0);
				Soj(GetPlayerX+15, GetPlayerY-20,270,15,104,1,50,18,0);
			}
		}
		case(19){//T[`oJ
			alternative(counter%6)
			case(0){
				Soj(GetPlayerX-30, GetPlayerY+20,270,35,110,2,2,24,0);
				Soj(GetPlayerX+30, GetPlayerY+20,270,35,110,2,2,24,0);
				Soj(GetPlayerX-45, GetPlayerY+30,270,35,110,2,2,24,0);
				Soj(GetPlayerX+45, GetPlayerY+30,270,35,110,2,2,24,0);
			}
		}		
		case(20){//^Pbge(11111)
			alternative(counter)
			case(5,10,15,20,25){Soj(GetPlayerX, GetPlayerY-10,270,15,111,10,2,2,11);}
		}
		case(21){//^e
			alternative(counter)
			case(10,20,30,40,50){Soj(GetPlayerX, GetPlayerY-20,270,5,120,2,50,23,10);}
		}		
		case(22){//Hsˌ
			alternative(counter%60)
			case(0){Guard(5,0,0,0);}
		}
		case(23){//^Pbge(4)
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-15, GetPlayerY+20,270,15,111,2,2,2,11);
				Soj(GetPlayerX+15, GetPlayerY+20,270,15,111,2,2,2,11);
				Soj(GetPlayerX-35, GetPlayerY+40,270,15,111,2,2,2,11);
				Soj(GetPlayerX+35, GetPlayerY+40,270,15,111,2,2,2,11);
			}
		}
		case(25){//oTz[~O
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-10, GetPlayerY-30,270,15,131,1,10,22,13);
				Soj(GetPlayerX+10, GetPlayerY-30,270,15,131,1,10,22,13);
				Soj(GetPlayerX-30, GetPlayerY-10,270,15,131,1,10,22,13);
				Soj(GetPlayerX+30, GetPlayerY-10,270,15,131,1,10,22,13);
				PlaySE(SE[49]);
			}
		}
		case(26){//PYVbg
			alternative(counter)
			case(5,10,15,20,25){
				Soj(GetPlayerX-40, GetPlayerY+20,270,15,135,1,50,0,0);
				Soj(GetPlayerX+40, GetPlayerY+20,270,15,135,1,50,0,0);
				PlaySE(SE[53]);
			}
		}
		case(28){//Hԋ
			alternative(counter%10)
			case(0){
				Soj(GetPlayerX-40, GetPlayerY+40,270,20,142,1,5,0,0);
				Soj(GetPlayerX+40, GetPlayerY+40,270,20,142,1,5,0,0);
				Soj(GetPlayerX-80, GetPlayerY+20,270,20,142,1,5,0,0);
				Soj(GetPlayerX+80, GetPlayerY+20,270,20,142,1,5,0,0);
				PlaySE(SE[61]);
			}
		}
		case(29){//藠
			alternative(counter)
			case(5,10,15,20){
				Soj(GetPlayerX+20,GetPlayerY-20,315+sag,20,153,2,5,0,0);
				Soj(GetPlayerX-20,GetPlayerY-20,225+sag,20,153,2,5,0,0);
				Soj(GetPlayerX+20,GetPlayerY+20, 45+sag,20,153,2,5,0,0);
				Soj(GetPlayerX-20,GetPlayerY+20,135+sag,20,153,2,5,0,0);
				PlaySE(SE[66]);
			}
		}
		case(30){//kd
			alternative(counter%5)
			case(0){Soj(GetPlayerX, GetPlayerY,-90+20*cos(counter*45),20,158,5,5,0,0);PlaySE(SE[70]);}
		}
		case(32){//Lbg~TC
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX+40, GetPlayerY-10,270,5,164,1,40,36,11);
				Soj(GetPlayerX-40, GetPlayerY-10,270,5,164,1,40,36,11);
			}
		}
		case(33){//obgubg	
		alternative(counter)
			case(10,20){
				Soj(GetPlayerX-30, GetPlayerY-20,270,10,166,1,10,0,0);
				Soj(GetPlayerX+30, GetPlayerY-20,270,10,166,1,10,0,0);
				PlaySE(SE[53]);
			}
		}
		case(34){//osJb^[
			alternative(counter)
			case(30,60){
				Soj(GetPlayerX-30, GetPlayerY+40,120,8,172,1,50,38,0);
				Soj(GetPlayerX+30, GetPlayerY+40, 60,8,173,1,50,38,0);
				PlaySE(SE[77]);
			}
		}
		case(35){//hZ~TC
			alternative(counter)
			case(10,20){
				Soj(GetPlayerX-40, GetPlayerY+20,270,5,176,2,10,39,-1);
				Soj(GetPlayerX+40, GetPlayerY+20,270,5,176,2,10,39,1);
				PlaySE(SE[6]);
			}
		}
		case(36){//ArA\[h
			alternative(counter)
			case(30,60){
				Soj(GetPlayerX-30, GetPlayerY+40,290,8,181,1,50,0,0);
				Soj(GetPlayerX+30, GetPlayerY+20,260,8,181,1,50,0,0);
				Soj(GetPlayerX+30, GetPlayerY+40,250,8,182,1,50,0,0);
				Soj(GetPlayerX-30, GetPlayerY+20,280,8,182,1,50,0,0);
				PlaySE(SE[40]);
			}
		}
		case(38){//z[~O99
		alternative(counter)
			case(10,20,30){
				Soj(GetPlayerX-40, GetPlayerY+20,270,10,186,1/4,10,22,10);
				Soj(GetPlayerX+40, GetPlayerY+20,270,10,186,1/4,10,22,10);
				Soj(GetPlayerX-60, GetPlayerY+40,270,10,186,1/4,10,22,10);
				Soj(GetPlayerX+60, GetPlayerY+40,270,10,186,1/4,10,22,10);
				PlaySE(SE[86]);
			}
		}
		case(39){//q[g}C
			alternative(counter%20)
			case(0){
				Soj(GetPlayerX+20, GetPlayerY-10,270,5,192,1,5,2,20);
				Soj(GetPlayerX-20, GetPlayerY-10,270,5,192,1,5,2,20);
				PlaySE(SE[91]);
			}
		}
		case(40){//oI[U[
			alternative(counter)
			case(1){Soj(GetPlayerX, GetPlayerY,270,0,196,15,200,40,0);}
			case(5){
				Soj(GetPlayerX,GetPlayerY,270,0,199,3,200,41,1);
				Soj(GetPlayerX,GetPlayerY,270,0,197,3,200,41,2);
				Soj(GetPlayerX,GetPlayerY,270,0,197,3,200,41,3);
				Soj(GetPlayerX,GetPlayerY,270,0,197,3,200,41,4);
				Soj(GetPlayerX,GetPlayerY,270,0,197,3,200,41,5);
				Soj(GetPlayerX,GetPlayerY,270,0,198,3,200,41,6);
				PlaySE(SE[96]);
			}
		}
		case(41){//Xg[g~TC
		alternative(counter%10)
			case(0){
				Soj(GetPlayerX-30, GetPlayerY+10,272,15,204,1,50,2,11);
				Soj(GetPlayerX+30, GetPlayerY+10,268,15,204,1,50,2,11);
				PlaySE(SE[86]);
			}
		}
		case(42){//[ip[
		alternative(counter%40)
			case(0){
				Soj(GetPlayerX, GetPlayerY-30,270,4,90,1,50,45,0);
				PlaySE(SE[104]);
			}
		}
		case(43){//oAu[U[
			alternative(counter%6)
			case(0){
				Soj(GetPlayerX-22, GetPlayerY+8,255,20,211,1,50,24,0);
				Soj(GetPlayerX+22, GetPlayerY+8,285,20,211,1,50,24,0);
				PlaySE(SE[107]);
			}
		}
		case(45){//p[eBN[U[
			alternative(counter)
			case(1){Soj(GetPlayerX, GetPlayerY,270,0,74,2,200,20,0);}
			case(6){
				Soj(GetPlayerX,GetPlayerY,270,0,75,4,100,21,5);
				Soj(GetPlayerX,GetPlayerY,270,0,75,4,100,21,6);
				Soj(GetPlayerX,GetPlayerY,270,0,75,4,100,21,7);
				Soj(GetPlayerX,GetPlayerY,270,0,75,4,100,21,8);
				PlaySE(SE[46]);
			}
		}
		case(46){//nCp[A[
		alternative(counter)
			case(10,20,30,40){
				Soj(GetPlayerX-25, GetPlayerY+20,270,20,89,1,50,2,10);
				Soj(GetPlayerX+25, GetPlayerY+20,270,20,89,1,50,2,10);
			}
		}
		case(47){//gnEh
			alternative(counter%40)
			case(0){
				Soj(GetPlayerX-10, GetPlayerY-30,265,15,186,1/3,1,22,10);
				Soj(GetPlayerX+10, GetPlayerY-30,275,15,186,1/3,1,22,10);
				Soj(GetPlayerX-30, GetPlayerY-10,255,15,186,1/3,1,22,10);
				Soj(GetPlayerX+30, GetPlayerY-10,285,15,186,1/3,1,22,10);
				Soj(GetPlayerX-50, GetPlayerY+10,245,15,186,1/3,1,22,10);
				Soj(GetPlayerX+50, GetPlayerY+10,295,15,186,1/3,1,22,10);
				PlaySE(SE[86]);
			}
		}
		case(48){//z[[X
			alternative(counter)
			case(5,10,15,20){
				Soj(GetPlayerX-30,   GetPlayerY,270,20,215,2,5,0,0);
				Soj(GetPlayerX+30,   GetPlayerY,270,20,215,2,5,0,0);
			}
		}
		case(49){//t[YA[
			Guard(26,0,GetPlayerX-25,0);
			Guard(26,0,GetPlayerX+25,0);
			Guard(26,0,GetPlayerX-45,0);
			Guard(26,0,GetPlayerX+45,0);
			alternative(counter)
			case(6){
				Soj(GetPlayerX-25,GetPlayerY-260,270,0,222,2,100,51,0);
				Soj(GetPlayerX+25,GetPlayerY-260,270,0,222,2,100,51,0);
				Soj(GetPlayerX-45,GetPlayerY-260,270,0,222,2,100,51,0);
				Soj(GetPlayerX+45,GetPlayerY-260,270,0,222,2,100,51,0);
				PlaySE(SE[46]);
			}
		}
		case(50){//vY}n}[
			alternative(counter%20)
			case(0){Soj(GetPlayerX, GetPlayerY-40,270+(rand(-2,2)*4),2,229,1/10,500,2,23);}
		}
		case(51){//}WbN\[h
			alternative(counter)
			case(20){
				Soj(GetPlayerX-30, GetPlayerY-30,220,10,234,1,10,53,0);
				Soj(GetPlayerX+30, GetPlayerY-30,320,10,234,1,10,53,0);
				PlaySE(SE[53]);
			}
			case(40){
				Soj(GetPlayerX-50, GetPlayerY,200,10,234,1,10,53,0);
				Soj(GetPlayerX+50, GetPlayerY,340,10,234,1,10,53,0);
				PlaySE(SE[49]);
			}
		}
	}
}
function WeaponShot{
	if(RapShot){
		alternative(WT)
		case(0){yield;}
		case(1){//V
			alternative(counter%20)
			case(0){
				Soj(GetPlayerX, GetPlayerY-30,270,15,4,3,50,3,0);
			}
		}
		case(2){//
			alternative(counter)
			case(2,4,6){
				Soj(GetPlayerX, GetPlayerY-30,270,8,14,2,30,6, 1);
				Soj(GetPlayerX, GetPlayerY-30,270,8,14,2,30,6,-1);
				PlaySE(SE[52]);
			}
		}
		case(3){//փoA
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX, GetPlayerY-20,270,15, 31,2,100,9,0);
				Soj(GetPlayerX, GetPlayerY-20,250,15, 31,2,100,9,0);
				Soj(GetPlayerX, GetPlayerY-20,290,15, 31,2,100,9,0);
				Soj(GetPlayerX, GetPlayerY-20,230,15, 31,2,100,9,0);
				Soj(GetPlayerX, GetPlayerY-20,310,15, 31,2,100,9,0);
			}
		}
		case(4){//tCA[
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX-10,   GetPlayerY,270,15, 36,2,100,0,0);
				Soj(GetPlayerX-30,GetPlayerY+20,270,15, 36,2,100,0,0);
				Soj(GetPlayerX-50,GetPlayerY+40,270,15, 36,2,100,0,0);
				Soj(GetPlayerX-70,GetPlayerY+60,270,15, 36,2,100,0,0);
				Soj(GetPlayerX+10,   GetPlayerY,270,15, 36,2,100,0,0);
				Soj(GetPlayerX+30,GetPlayerY+20,270,15, 36,2,100,0,0);
				Soj(GetPlayerX+50,GetPlayerY+40,270,15, 36,2,100,0,0);
				Soj(GetPlayerX+70,GetPlayerY+60,270,15, 36,2,100,0,0);
			}
		}
		case(5){//ӂꌂ
			alternative(counter%5)
			case(0){PlaySE(SE[48]);Soj(GetPlayerX-15*cos(counter*180), GetPlayerY-20,270,25,40,22,2,0,0);}
		}
		case(6){//X[p[GLe
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX,GetPlayerY-20,210,10,46,15,30,12,0);
				Soj(GetPlayerX,GetPlayerY-20,330,10,46,15,30,12,0);
				PlaySE(SE[51]);
			}
		}
		case(8){//t@C[rbg
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX, GetPlayerY-20,270,10,51,5,10,2,5);
				PlaySE(SE[30]);
			}
		}
		case(9){//ge
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX, GetPlayerY-20,270,8,59,5,10,2,6);
				PlaySE(SE[35]);
			}
		}
		case(10){//@Ӗ_n˂
			alternative(counter)
			case(5){Soj(GetPlayerX, GetPlayerY-20,270,0,65,1,20,17,1);PlaySE(SE[41]);}
		}
		case(11){//hSPbgꌂ
			alternative(counter%6)
			case(0){
				Soj(GetPlayerX+20+10*cos(counter*15), GetPlayerY-5,270,10,69,3,10,2,8);
				Soj(GetPlayerX-20-10*cos(counter*15), GetPlayerY-5,270,10,69,3,10,2,8);
				PlaySE(SE[6]);
			}
		}
		case(12){//Pbgp`
			alternative(counter)
			case(4){Soj(GetPlayerX, GetPlayerY-20,270,0,65,1,30,17,2);PlaySE(SE[23]);}
		}
		case(14){Wsj2(0,-20,270,40,76,4,4,0,0);}//Xg[g8
		case(15){Asj(3,0,0,270,35,92,2,5,0,0);}//Xg[g9
		case(16){//oX^[[U[
			alternative(counter)
			case(30){
				Soj(GetPlayerX+40, GetPlayerY,270,0,95,2,50,25, 40);
				Soj(GetPlayerX-40, GetPlayerY,270,0,94,2,50,25,-40);
				Soj(GetPlayerX+40, GetPlayerY,270,0,96,2,50,26, 40);
				Soj(GetPlayerX-40, GetPlayerY,270,0,96,2,50,26,-40);
			}
			case(60){
				Soj(GetPlayerX+40, GetPlayerY,270,0,95,2,50,25, 40);
				Soj(GetPlayerX-40, GetPlayerY,270,0,94,2,50,25,-40);
				Soj(GetPlayerX+40, GetPlayerY,270,0,96,2,50,26, 40);
				Soj(GetPlayerX-40, GetPlayerY,270,0,96,2,50,26,-40);
				PlaySE(SE[24]);
			}
		}
		case(17){Asj(4,0,0,270,35,105,6,4,0,0);}//Xg[g10
		case(18){//Ch6
			Wsj2( 15,-20,272,30,98,2,4,0,0);
			Wsj2(-15,-20,268,30,98,2,4,0,0);
			Wsj2( 35,0,275,30,101,1,4,0,0);
			Wsj2(-35,0,265,30,101,1,4,0,0);
		}
		case(19,20){Wsj2(0,-20,270,40,107,2,10,0,0);}//Xg[g11
		case(21){//Ch7
			Wsj2(  0,-20,270,35,113,2,2,0,0);
			Wsj2( 15,-10,275,35,116,2,2,0,0);
			Wsj2(-15,-10,265,35,116,2,2,0,0);
			Wsj2( 20,-10,280,35,116,2,2,0,0);
			Wsj2(-20,-10,260,35,116,2,2,0,0);
		}
		case(22){Asj(2,0,0,270,45,119,5/2,5,0,0);}//Xg[g12
		case(23){Wsj2(0,-20,270,40,126,4,2,0,0);}//Xg[g13
		case(25){//g̏p@
			alternative(counter%30)
			case(0){Soj(GetPlayerX, GetPlayerY-20,270,8,133,50,50,2,14);}		
		}
		case(26){//̑PY
			alternative(counter%60)
			case(0){PlaySE(SE[54]);Soj(GetPlayerX, GetPlayerY-20,270,6,136,5,50,31,0);}
		}
		case(27){//䶗
			alternative(counter)
			case(6){Soj(GetPlayerX, GetPlayerY-20,270,0,65,1,30,17,3);PlaySE(SE[58]);}
		}
		case(29){//Ή̏p
			alternative(counter%30)
			case(0){PlaySE(SE[67]);Soj(GetPlayerX, GetPlayerY-40,270,0,154,8,50,33,0);}
		}
		case(30){//Xg[g19
			alternative(counter%4)
			case(0){Soj(GetPlayerX, GetPlayerY-30,270,20,159,2,10,0,0);PlaySE(SE[69]);}
		}
		case(32){//rbg[[	
			alternative(Mecount)
			case(3){Soj(GetPlayerX, GetPlayerY-20,270,0,65,300,100,17,4);PlaySE(SE[74]);}
		}
		case(33){//t@C[obg
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX, GetPlayerY-20,270+sag,10,167,5,10,2,18);
				PlaySE(SE[30]);
			}
		}
		case(34){//osp`	
			alternative(Mecount)
			case(3){Soj(GetPlayerX, GetPlayerY-20,270,0,65,300,100,17,5);PlaySE(SE[74]);}
		}
		case(35){//r[T[x	
			alternative(Mecount)
			case(0){PlaySE(SE[82]);}
			case(4){Soj(GetPlayerX, GetPlayerY-20,270,0,65,300,100,17,6);}
		}
		case(36){//fuOl[h
			alternative(counter%60)
			case(0){Soj(GetPlayerX, GetPlayerY-20,270+sag,10,183,500,10,2,12);PlaySE(SE[83]);}
		}
		case(38){//sbh~TC
			alternative(counter%10)
			case(0){
				Soj(GetPlayerX-20*cos(counter*1), GetPlayerY-30,270,10,187,1/4,10,2,17);
				Soj(GetPlayerX+20*cos(counter*1), GetPlayerY-30,270,10,187,1/4,10,2,17);
				Soj(GetPlayerX-40-20*cos(counter*1), GetPlayerY-10,270,10,187,1/4,10,2,17);
				Soj(GetPlayerX+40+20*cos(counter*1), GetPlayerY-10,270,10,187,1/4,10,2,17);
				PlaySE(SE[87]);
			}
		}
		case(39){//\jbNEFCu
			alternative(counter%60)
			case(0){
				Soj(GetPlayerX+20, GetPlayerY-10,270,10,192,1,5,2,21);
				Soj(GetPlayerX-20, GetPlayerY-10,270,10,192,1,5,2,21);
				PlaySE(SE[91]);
			}
		}
		case(40){//cCXeBK[
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX, GetPlayerY,270,0,200,2,50,42,1);
				Soj(GetPlayerX, GetPlayerY,270,0,200,2,50,42,2);
				Soj(GetPlayerX, GetPlayerY,270,0,201,2,50,42,3);
				Soj(GetPlayerX, GetPlayerY,270,0,201,2,50,42,4);
				Soj(GetPlayerX, GetPlayerY,270,0,201,2,50,42,5);
				Soj(GetPlayerX, GetPlayerY,270,0,201,2,50,42,6);
				Soj(GetPlayerX, GetPlayerY,270,0,201,2,50,42,7);
				Soj(GetPlayerX, GetPlayerY,270,0,201,2,50,42,8);
				PlaySE(SE[97]);
			}
		}
		case(41){//n^[z[~O
			alternative(counter)
			case(30){Guard(14,0,0,0);}
			case(60){Guard(14,0,1,0);}
		}
		case(42){//NXip[
			alternative(counter)
			case(1){
				Soj(GetPlayerX+40, GetPlayerY-10,270,6,82,1/5,50,46,-1);
				Soj(GetPlayerX-40, GetPlayerY-10,270,6,82,1/5,50,46, 1);
			}
		}
		case(43){//XpC[U[
			Guard(16,0,1,0);
			alternative(counter%5)
			case(0){Soj(GetPlayerX,GetPlayerY-30,270,33,212,4,3,0,0);}
			alternative(counter%3)
			case(0){
				Soj(GetPlayerX-30,GetPlayerY-30,250,33,213,3,3,0,0);
				Soj(GetPlayerX+30,GetPlayerY-30,290,33,213,3,3,0,0);
			}
			alternative(counter%10)
			case(0){PlaySE(SE[108]);}
		}
		case(48){//o[XgX
			alternative(counter%10)
			case(0){
				Soj(GetPlayerX-45*cos(counter*15), GetPlayerY-20,270,10,216,1/5,50,49,0);
			}
		}
		case(49){//_Ch_Xg
			Guard(16,0,0,0);
			alternative(counter%10)
			case(0){
				Soj(GetPlayerX, GetPlayerY-40,270,30,223,4,3,0,0);
				Soj(GetPlayerX-10, GetPlayerY-30,260,30,223,4,3,0,0);
				Soj(GetPlayerX-20, GetPlayerY-20,250,30,223,4,3,0,0);
				Soj(GetPlayerX-30, GetPlayerY-10,240,30,223,4,3,0,0);
				Soj(GetPlayerX+10, GetPlayerY-30,280,30,223,4,3,0,0);
				Soj(GetPlayerX+20, GetPlayerY-20,290,30,223,4,3,0,0);
				Soj(GetPlayerX+30, GetPlayerY-10,300,30,223,4,3,0,0);
			}
		}
		case(50){//CgjOn}[
			alternative(counter)
			case(10,20,30){Soj(GetPlayerX, GetPlayerY-40,270+(rand(-1,1)*20),4,231,5,500,0,0);}
		}
		case(51){//fXNbV
			alternative(counter)
			case(1){PlaySE(SE[67]);Soj(GetPlayerX, GetPlayerY,270,0,235,10,200,54,0);}
		}
	}
}
function WeaponSub{
	if(RapShot){
		alternative(WU)
		case(0){yield;}
		case(14){//II^~TC
			alternative(counter%40)
			case(0){
				Soj(GetPlayerX+40, GetPlayerY-10,270,5,81,1,2,2,12);
				Soj(GetPlayerX-40, GetPlayerY-10,270,5,81,1,2,2,12);
			}
		}
		case(15){//X^O
			alternative(counter%50)
			case(0){Guard(2,0,GetPlayerX,0);}
		}
		case(17,18){//A˃Pbge(222)	
		alternative(counter)
			case(10,20,30){
				Soj(GetPlayerX-15, GetPlayerY-20,270,20,89,1,50,2,10);
				Soj(GetPlayerX+15, GetPlayerY-20,270,20,89,1,50,2,10);
			}
		}
		case(19){//^Pbge(11111)
			alternative(counter)
			case(4,8,12,16,20){
				Soj(GetPlayerX, GetPlayerY-10,270,10,111,10,2,2,11);
			}
		}
		case(20){//T[`oJ
			alternative(counter%8)
			case(0){
				Soj(GetPlayerX-30, GetPlayerY+20,270,30,110,2,2,24,0);
				Soj(GetPlayerX+30, GetPlayerY+20,270,30,110,2,2,24,0);
				Soj(GetPlayerX-45, GetPlayerY+30,270,30,110,2,2,24,0);
				Soj(GetPlayerX+45, GetPlayerY+30,270,30,110,2,2,24,0);
			}
		}
		case(21){//Pbg`[				
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-30, GetPlayerY+100,267,10,121,1/2,50,29,0);
				Soj(GetPlayerX+30, GetPlayerY+100,273,10,121,1/2,50,29,0);
			}
		}
		case(22){//HWC
			alternative(counter%60)
			case(0){Guard(6,0,GetPlayerX,GetPlayerY);}
		}
		case(23){//q[g~TC()
			alternative(counter%30)
			case(0){
				Soj(GetPlayerX-15, GetPlayerY+20,270,12,129,1,50,18,0);
				Soj(GetPlayerX+15, GetPlayerY+20,270,12,129,1,50,18,0);
				Soj(GetPlayerX-30, GetPlayerY+40,270,12,129,1,50,18,0);
				Soj(GetPlayerX+30, GetPlayerY+40,270,12,129,1,50,18,0);
			}
		}
		case(30){//tCA[(G)
			alternative(counter)
			case(5,15){
				PlaySE(SE[73]);
				Soj(GetPlayerX-30,GetPlayerY,270,15,160,1/2,10,35,0);
				Soj(GetPlayerX+30,GetPlayerY,270,15,160,1/2,10,35,0);
			}
			case(10,20){
				PlaySE(SE[73]);
				Soj(GetPlayerX-40,GetPlayerY,270,15,160,1/2,10,35,0);
				Soj(GetPlayerX+40,GetPlayerY,270,15,160,1/2,10,35,0);
			}
		}
		case(33){//obg~TC
			alternative(counter%50)
			case(0){Guard(10,0,0,0);}
		}
	}
}
function BombShot{
	alternative(BT)
	case(0){yield;}
	case(1){//Ԃ̕
		alternative(counter%3)
		case(0){
			Soj(GetPlayerX, GetPlayerY,270-counter*10,10, 5,4,20,4,0);
			Soj(GetPlayerX, GetPlayerY,210-counter*10, 6, 8,3,20,4,0);
			Soj(GetPlayerX, GetPlayerY,150-counter*10, 7, 6,3,20,4,0);
			Soj(GetPlayerX, GetPlayerY, 90-counter*10, 8, 7,3,20,4,0);
		}
	}
	case(2){//VOn
		alternative(counter%6)
		case(0){
			Soj(GetPlayerX, GetPlayerY,270,25,[15,16,17,18,19,20,21,22,23][rand_int(0,8)],60,100,2,2);
			Soj(GetPlayerX, GetPlayerY,270,0, 14,10,10,7,0);
		}
	}
	case(3){//VT
		alternative(counter%10)
		case(0){
			Soj(GetPlayerX   , GetPlayerY,270,30,33,10,10,0,0);
			Soj(GetPlayerX-20, GetPlayerY,250,30,33,5,10,0,0);
			Soj(GetPlayerX+20, GetPlayerY,290,30,33,5,10,0,0);
			Soj(GetPlayerX-40, GetPlayerY,230,30,33,5,10,0,0);
			Soj(GetPlayerX+40, GetPlayerY,310,30,33,5,10,0,0);
		}
	}
	case(8){//EChVFCo[
		alternative(counter)
		case(20){
			Soj(GetPlayerX, GetPlayerY,  0,10,53,25,10,14,0);
			Soj(GetPlayerX, GetPlayerY, 90,10,53,25,10,14,0);
			Soj(GetPlayerX, GetPlayerY,180,10,53,25,10,14,0);
			Soj(GetPlayerX, GetPlayerY,270,10,53,25,10,14,0);
		}
		case(30){
			Soj(GetPlayerX, GetPlayerY, 45, 8,53,25,10,14,0);
			Soj(GetPlayerX, GetPlayerY,135, 8,53,25,10,14,0);
			Soj(GetPlayerX, GetPlayerY,225, 8,53,25,10,14,0);
			Soj(GetPlayerX, GetPlayerY,315, 8,53,25,10,14,0);
		}
	}
	case(10){//gˌ
		alternative(counter%10)
		case(0){Soj(GetCenterX+rand(-2,2)*n, GetClipMaxY,270,15,67,5,50,18,0);}
	}
	case(11){//]ˑ΍
		alternative(counter%60)
		case(0){
			Soj(GetPlayerX+10, GetPlayerY,  0,5,71,5,50,19,0);
			Soj(GetPlayerX-10, GetPlayerY,180,5,71,5,50,19,0);
		}
	}
	case(28){//VOn(B)
		alternative(counter%8)
		case(0){Soj(GetPlayerX, GetPlayerY,270,10,[15,16,17,18,19,20,21,22,23][rand_int(0,8)],40,100,2,16);}
	}
	case(30){//ߗRa
		alternative(counter%2)
		case(0){
			Soj(GetCenterX+rand(-4,4)*n-10, GetClipMaxY-70,270,1,[146,149][rand_int(0,1)],2,50,32,0);
			Soj(GetCenterX+rand(-4,4)*n+23, GetClipMaxY-110,270,1,[147,150][rand_int(0,1)],2,50,32,0);
			PlaySE([Cut~"Se62.wav",Cut~"Se63.wav",Cut~"Se64.wav",][rand_int(0,2)]);
		}
	}
	case(31){//E@ ؂̕
		alternative(counter%2)
		case(0){
			Soj(GetCenterX+rand(-3,5)*n, GetClipMinY,110,15,[6,7,8][rand_int(0,2)],5,50,4,0);
			Soj(GetCenterX+rand(-5,3)*n, GetClipMaxY,290,15,[155,156][rand_int(0,1)],5,50,4,0);
		}
		
	}
	case(33){//XEB[gJ[jo
		alternative(counter%3)
		case(0){
			Soj(224,240,270-counter*10,10,49,2/3,40,37,0);
			Soj(224,240,150-counter*10,10,49,2/3,40,37,0);	
			Soj(224,240, 30-counter*10,10,49,2/3,40,37,0);
		}
	}
}