#e[Player]
#ScriptVersion[2]
#Menu[Jc]
#Text[[U[L[ŃbNVbg[hA
L͈&Η͏WVbg[h؂ւ\B
Η͍A蔻菬B
Ver1.00]
#Image[]
#ReplayName[ketui_sanae]

script_player_main {

	let shotLag = 0;
	let shotCount = 0;
	let bShot  = false;
    let bSlow  = false;
	let mt = false;
	let Mode = false;
	let opShotAngle1=-90;
	let opShotAngle2=-90;
	let opShotAngle3=-90;
	let opShotAngle4=-90;
	let opX1=-20;
	let opX2=20;
	let opX3=-10;
	let opX4=10;
	let opY1=0;
	let opY2=0;
	let opY3=20;
	let opY4=20;
	let op2X1=-40;
	let op2X2=40;
	let op2X3=-20;
	let op2X4=20;
	let op2Y1=0;
	let op2Y2=0;
	let op2Y3=0;
	let op2Y4=0;
	let SE1 = GetCurrentScriptDirectory ~"tm2r_shoot16.wav";
	let SE2 = GetCurrentScriptDirectory ~"tm2_gun006_minigunlp2.wav";
	let SE3 = GetCurrentScriptDirectory ~"se1.wav";
	let DSAngle1 = -100;
    let DSAngle2 = -80; 
    let DSAngle3 = -95;
    let DSAngle4 = -85;
    let DSAngle5 = -100;
    let DSAngle6 = -80; 
    let DSAngle7 = -95;
    let DSAngle8 = -85;
    let EF = GetCurrentScriptDirectory ~"Sanae_effect01.png";
    let n = 1;
	
	@Initialize {
		
		LoadGraphic(GetCurrentScriptDirectory ~ "player_sanae.png");
		LoadGraphic(EF);
		
		SetSpeed(4, 1.5);
		
		
		SetGrazeCircle(30);
		
		
		SetItemCollectLine(180);
		
		
		SetInitialBombCount(3);
		
		
		SetPlayerLifeImage(GetCurrentScriptDirectory ~ "player_sanae.png", 0, 192, 31, 223);
		
		
		LoadPlayerShotData(GetCurrentScriptDirectory ~ "sanaeShot.txt");
		Tmain;
	}
	
	@MainLoop {
		
		
		
		SetIntersectionCircle(GetPlayerX, GetPlayerY, 0.7);
		if (OnBomb){
			SetItemCollectLine(470);
		}else if (!OnBomb){
			SetItemCollectLine(180);
		}
		
		yield;
		
	}
	
	@Missed {
		SetInitialBombCount(3+1+GetMissCount);
		
		
	}
	
	@SpellCard {
		
		UseSpellCard("bom", 0);
		
}
	@DrawLoop {
		
		
		
		SetTexture(GetCurrentScriptDirectory ~ "player_sanae.png");
		
		
		if((GetKeyState(VK_LEFT) == KEY_PUSH) || (GetKeyState(VK_LEFT) == KEY_HOLD))
		{
			
			
			SetGraphicRect(0, 48, 47, 95);
		}
		else if((GetKeyState(VK_RIGHT) == KEY_PUSH) || (GetKeyState(VK_RIGHT) == KEY_HOLD))
		{
			
			
			SetGraphicRect(0, 96, 47, 143);
		}
		else
		{
			
			
			SetGraphicRect(0, 0, 47, 47);
		}
		
	
		DrawGraphic(GetPlayerX, GetPlayerY);


		if (!Mode){
			SetGraphicRect(22, 161, 37, 176);
			DrawGraphic(GetPlayerX+opX1, GetPlayerY+opY1);
			SetGraphicRect(22, 161, 37, 176);
			DrawGraphic(GetPlayerX+opX2, GetPlayerY+opY2);
			SetGraphicRect(22, 161, 37, 176);
			DrawGraphic(GetPlayerX+opX3, GetPlayerY+opY3);
			SetGraphicRect(22, 161, 37, 176);
			DrawGraphic(GetPlayerX+opX4, GetPlayerY+opY4);
		} else if (Mode) {
			SetGraphicRect(42, 161, 57, 176);
			DrawGraphic(GetPlayerX+op2X1, GetPlayerY+op2Y1);
			SetGraphicRect(42, 161, 57, 176);
			DrawGraphic(GetPlayerX+op2X2, GetPlayerY+op2Y2);
			SetGraphicRect(42, 161, 57, 176);
			DrawGraphic(GetPlayerX+op2X3, GetPlayerY+op2Y3);
			SetGraphicRect(42, 161, 57, 176);
			DrawGraphic(GetPlayerX+op2X4, GetPlayerY+op2Y4);
		}
			
	}
	
	@Finalize {

		
		DeleteGraphic(GetCurrentScriptDirectory ~ "player_sanae.png");
	}

task Tmain{
	yield;
	MT;
	MH;
	TMShot;
	TAngle;
	SShot;
	rock;
}
task rock{
	
	loop{
	if (Mode){
		
				let obj=Obj_Create(OBJ_EFFECT);
				ObjEffect_SetTexture(obj,EF);
				ObjEffect_SetLayer(obj,5);
				ObjEffect_SetPrimitiveType(obj,PRIMITIVE_TRIANGLESTRIP);
				ObjEffect_CreateVertex(obj,4);
				ObjEffect_SetRenderState(obj, ADD);
				ObjEffect_SetVertexUV(obj, 0, 96, 160);
				ObjEffect_SetVertexUV(obj, 1, 96, 255);
				ObjEffect_SetVertexUV(obj, 2, 191, 160);
				ObjEffect_SetVertexUV(obj, 3, 191, 255);
				ObjEffect_SetVertexXY(obj,0,-40,-40);
				ObjEffect_SetVertexXY(obj,1,40,-40);
				ObjEffect_SetVertexXY(obj,2,-40,40);
				ObjEffect_SetVertexXY(obj,3,40,40);
				loop {
				Obj_SetPosition(obj,GetEnemyX,GetEnemyY);
				if (!Mode){
					Obj_Delete(obj);

				break;
						  }
				if (GetEnemyNum == 0){
						Obj_Delete(obj);

				break;
			}
					
				yield;
				
					}
							
								
				}
				
			yield;
		}
		}

task TMShot {	
        let bShotP = false;
        let t = 0;
        
        loop {
            if(!bShot) {
                if(bShotP) {
                    t = 10;
                }
                if(t == 0) {
                    while(! bShot) { yield; }
                } else {
                    t--;
                }
            }
            if (Mode){
	            PlaySE("sePlayerShot01.wav");
	            CreatePlayerShot01(GetPlayerX+10,GetPlayerY,18,-85, 1.0, 1, 4);
	CreatePlayerShot01(GetPlayerX-10,GetPlayerY,18,-95, 1.0, 1, 4);		
 	CreatePlayerShot01(GetPlayerX+5,GetPlayerY,20,-90, 1.0, 1, 4);
	CreatePlayerShot01(GetPlayerX-5,GetPlayerY,20,-90, 1.0, 1, 4);                
            bShotP = bShot;

            wait(4);
            
           }else if (!bSlow){
	           PlaySE("sePlayerShot01.wav");
	CreatePlayerShot01(GetPlayerX+10,GetPlayerY,18,-50, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX-10,GetPlayerY,18,-130, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX+10,GetPlayerY,18,-65, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX-10,GetPlayerY,18,-115, 1.4, 2, 1  );
 	CreatePlayerShot01(GetPlayerX+5,GetPlayerY,20,-80, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX-5,GetPlayerY,20,-100, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX+5,GetPlayerY,20,-90, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX-5,GetPlayerY,20,-90, 1.4, 2, 1  );
            bShotP = bShot;
            wait(4);
           }else if(bSlow){
	           PlaySE("sePlayerShot01.wav");
	           CreatePlayerShot01(GetPlayerX+10,GetPlayerY,18,-89, 1.4, 2, 1);
			CreatePlayerShot01(GetPlayerX-10,GetPlayerY,18,-91, 1.4, 2, 1);		
			CreatePlayerShot01(GetPlayerX+5,GetPlayerY,20,-90, 1.4, 2, 1);
		       CreatePlayerShot01(GetPlayerX-5,GetPlayerY,20,-90, 1.4, 2, 1);
		       CreatePlayerShot01(GetPlayerX+5,GetPlayerY,20,-90, 1.4, 2, 1);
		       CreatePlayerShot01(GetPlayerX-5,GetPlayerY,20,-90, 1.4, 2, 1);
		       CreatePlayerShot01(GetPlayerX+10,GetPlayerY,18,-89, 1.4, 2, 1  );
	CreatePlayerShot01(GetPlayerX-10,GetPlayerY,18,-91, 1.4, 2, 1  );
		       bShotP = bShot;
            wait(4);
						}
	
	
        }
	      
    }
    	task TAngle{
		let angle;
		loop{
			if(Mode) {
				 if (GetEnemyNum > 0){
				DSAngle1 = atan2(GetEnemyY-(GetPlayerY+op2Y1-5),GetEnemyX- (GetPlayerX+op2X1));        
    				DSAngle2 = atan2(GetEnemyY-(GetPlayerY+op2Y2-5),GetEnemyX- (GetPlayerX+op2X2)); 
    				DSAngle3 = atan2(GetEnemyY-(GetPlayerY+op2Y3-5),GetEnemyX- (GetPlayerX+op2X3));      
    				DSAngle4 = atan2(GetEnemyY-(GetPlayerY+op2Y4-5),GetEnemyX- (GetPlayerX+op2X4));
    				
    				DSAngle5 = atan2(GetEnemyY-(GetPlayerY+op2Y1+5),GetEnemyX- (GetPlayerX+op2X1));        
    				DSAngle6 = atan2(GetEnemyY-(GetPlayerY+op2Y2+5),GetEnemyX- (GetPlayerX+op2X2)); 
    				DSAngle7 = atan2(GetEnemyY-(GetPlayerY+op2Y3+5),GetEnemyX- (GetPlayerX+op2X3));      
    				DSAngle8 = atan2(GetEnemyY-(GetPlayerY+op2Y4+5),GetEnemyX- (GetPlayerX+op2X4));
    			}else {
	    			DSAngle1 = -90;
	    			DSAngle2 = -90;
	    			DSAngle3 = -90;
	    			DSAngle4 = -90;
	    			DSAngle5 = -90;
	    			DSAngle6 = -90;
	    			DSAngle7 = -90;
	    			DSAngle8 = -90;
	    		}

}else if (!bSlow){
				DSAngle1 = -130;
    				DSAngle2 = -50; 
    				DSAngle3 = -100;
    				DSAngle4 = -80;
				}else if (bSlow){
					DSAngle1 = -90;
    				DSAngle2 = -90; 
    				DSAngle3 = -90;
    				DSAngle4 = -90;
    			}


			yield;
			}
	}
task SShot{
	let bShotP = false;
        let t = 0;
        let d = 0;        
        loop {
            if(! bShot) {
                if(bShotP) {
                    t = 10;
                }
                if(t == 0) {
                    while(! bShot) { yield; }
                } else {
                    t--;
                }
            }
            if (Mode){
	            d = 2;
	           }else{
		           d= 4;
		          }
            if(!Mode){
            CreatePlayerShot01(GetPlayerX+opX1,GetPlayerY+opY1,18,DSAngle1, 1.4, 2, 2);
			CreatePlayerShot01(GetPlayerX+opX2,GetPlayerY+opY2,18,DSAngle2, 1.4, 2, 2);		
 			CreatePlayerShot01(GetPlayerX+opX3,GetPlayerY+opY3,18,DSAngle3, 1.4, 2, 2);
			CreatePlayerShot01(GetPlayerX+opX4,GetPlayerY+opY4,18,DSAngle4, 1.4, 2, 2);
			wait(d);
			bShotP = bShot;
		} else if (Mode) {
			CreatePlayerShot01(GetPlayerX+op2X1-5,GetPlayerY+op2Y1,18,DSAngle1, 0.7, 3, 5);
			CreatePlayerShot01(GetPlayerX+op2X2-5,GetPlayerY+op2Y2,18,DSAngle2, 0.7, 3, 5);		
 			CreatePlayerShot01(GetPlayerX+op2X3-5,GetPlayerY+op2Y3,18,DSAngle3, 0.7, 3, 5);
			CreatePlayerShot01(GetPlayerX+op2X4-5,GetPlayerY+op2Y4,18,DSAngle4, 0.7, 3, 5);
			
			CreatePlayerShot01(GetPlayerX+op2X1+5,GetPlayerY+op2Y1,18,DSAngle5, 0.7, 3, 5);
			CreatePlayerShot01(GetPlayerX+op2X2+5,GetPlayerY+op2Y2,18,DSAngle6, 0.7, 3, 5);		
 			CreatePlayerShot01(GetPlayerX+op2X3+5,GetPlayerY+op2Y3,18,DSAngle7, 0.7, 3, 5);
			CreatePlayerShot01(GetPlayerX+op2X4+5,GetPlayerY+op2Y4,18,DSAngle8, 0.7, 3, 5);
			bShotP = bShot;
			wait(d)
		}
		yield;
	}
}
	            



task MT{
		let sta;
		loop {
			sta  = GetKeyState(VK_SHOT);
            bShot  = (sta == KEY_PUSH || sta == KEY_HOLD);
        
            sta  = GetKeyState(VK_SLOWMOVE);
            bSlow  = (sta == KEY_PUSH || sta == KEY_HOLD);
            
			sta = GetKeyState(VK_USER);
			mt = (sta == KEY_PUSH);
			yield;
		}
}
task MH{
	loop{
		if(mt){
			if(!Mode){
				PlaySE(SE1);
				Mode = true;
			}else if(Mode) {
				PlaySE(SE3);
				Mode = false;
			}
		}
		yield;
	}
}






function wait(w) {
        loop(w) { yield; }
    }
}






script_spell bom {
	let EF = GetCurrentScriptDirectory ~"Sanae_shots.png";
	let angle1 = 0;
	let angle2 = 0;
	@Initialize {
        SetPlayerInvincibility(300);
        LoadGraphic(EF);
	TMain;
    }

    @Finalize {
    }

    @MainLoop {
        yield;

    }
    task TMain {
	    yield;
	    exp;
	   }
	   task exp{
		   
		   let objs = Obj_Create(OBJ_SPELL);
		   Obj_SetX(objs, GetPlayerX);
		   Obj_SetX(objs, GetPlayerY-200);
		   PlaySE(GetCurrentScriptDirectory ~"bom01.wav");
		   ObjEffect_SetTexture(objs,EF);
				ObjEffect_SetLayer(objs,5);
				ObjEffect_SetPrimitiveType(objs,PRIMITIVE_TRIANGLESTRIP);
				ObjEffect_CreateVertex(objs,4);
				ObjEffect_SetVertexUV(objs, 0, 88, 144);
				ObjEffect_SetVertexUV(objs, 1, 88, 231);
				ObjEffect_SetVertexUV(objs, 2, 182, 144);
				ObjEffect_SetVertexUV(objs, 3, 182, 231);
				ObjEffect_SetVertexXY(objs,0,-50,-50);
				ObjEffect_SetVertexXY(objs,1,50,-50);
				ObjEffect_SetVertexXY(objs,2,-50,50);
				ObjEffect_SetVertexXY(objs,3,50,50);
				

					Obj_SetPosition(objs, GetPlayerX, GetPlayerY-200);
					loop(240){
						ObjSpell_SetIntersecrionCircle(objs, GetPlayerX, GetPlayerY-200, 300, 10, true);
						ObjEffect_SetScale(objs, angle1,angle2);
						angle1 -= 0.5;
						angle2 += 0.5;
						wait(1);
					}
					
				
		   Obj_Delete(objs);
		   End;
		  }
		  function wait(w) {
        loop(w) { yield; }
    }
		 }