#東方弾幕風[Player]	//自機スクリプトであることを示します
#ScriptVersion[2]	//スクリプトバージョン2が必須です
#Menu[霊烏路 空]		//自機選択画面で表示されるメニューです
#Text[霊烏路 空　-非想天則っぽい-
　　ユーザーキーでモード変更、
　　低速時に各種ショットを放つ。
　　モード1：前拡散ショット
　　モード2：全方位ショット
　　モード3：高威力ショット
　　ボム：
　　　高速：爆符「メガフレア」
　　　低速：サブテレイニアンサン]	//自機選択画面で表示されるテキストです
#Image[.\img\Select_Player666.png]	//自機選択画面で表示される画像ファイルへのパスです
#ReplayName[Utsuho]	//リプレイ選択時に表示される文字です。8文字以内です。

script_player_main {
	#include_function".\txt\ShotTask.txt"
	#include_function".\txt\LocalData.txt"
    let PCenterX=GetPlayerX;
    let PCenterY=GetPlayerY;
    let StarX=[PCenterX-24,PCenterX+24];
    let StarY=[PCenterY,PCenterY];
    let FireFlag=true;
    let nukeType = 0;


    @Initialize {
        ascent(n in 0..length(Graphics)){LoadGraphic(Graphics[n]);}
        ascent(n in 0..length(SE)){LoadSE(SE[n]);}
        LoadPlayerShotData(ShotData);
	SetRibirthFrame(10);
	SetGrazeCircle(40);
        SetPlayerLifeImage(Graphics[0], 121, 14, 156, 47);
        SetItemCollectLine(1000);
	SetSpeed(3.7, 1.3);
	PCenterX=GetPlayerX;
    	PCenterY=GetPlayerY;

        TMain;
    }

    @MainLoop {
	if(nukeType==1){
	        SetPlayerLifeImage(Graphics[0], 101, 66, 136, 99);
	}
	else if(nukeType==0){
        SetPlayerLifeImage(Graphics[0], 101, 16, 136, 49);
	}
	else{SetPlayerLifeImage(Graphics[0],101,119,136,152)}
	if(OnBomb){CollectItems;}
	if(PCenterX>GetPlayerX+0.7){
		if(PCenterX-GetPlayerX>10){PCenterX=GetPlayerX+10;}
		PCenterX-=1;
		}
	else if(PCenterX<GetPlayerX-0.7){
		if(PCenterX-GetPlayerX<-10){PCenterX=GetPlayerX-10;}
		PCenterX+=1;
		}
	else{PCenterX=GetPlayerX;}
	if(PCenterY>GetPlayerY+0.7){
		if(PCenterY-GetPlayerY>10){PCenterY=GetPlayerY+10;}
		PCenterY-=1;
		}
	else if(PCenterY<GetPlayerY-0.7){
		if(PCenterY-GetPlayerY<-10){PCenterY=GetPlayerY-10;}
		PCenterY+=1;
		}
	else{PCenterY=GetPlayerY;}
        SetIntersectionCircle(GetPlayerX, GetPlayerY, 0);
        yield;
    }

    @Missed{MainLoop}

    @SpellCard {
	if(!bSlow){
		UseSpellCard("Karasu", [Graphics[1],SE[2]]);
                CutIn(YOUMU, "爆符「メガフレア」", Graphics[1]);
		}
	else{
		UseSpellCard("STAR", [Graphics[1],SE[2]]);
                CutIn(YOUMU, "サブテレイニアンサン", Graphics[1]);
		}
    	}

    @DrawLoop {
	SetTexture(Graphics[0]);
	SetGraphicAngle(0,0,0);
	SetAlpha(255);
	SetGraphicScale(1.0,1.0);
        if(bLeft){SetGraphicRect(1, 121, 60, 180);}
        else if(bRight) {SetGraphicRect(1, 61, 60, 120);}
	else{SetGraphicRect(1, 1, 60, 60);}
        DrawGraphic(GetPlayerX, GetPlayerY);

	ascent(n in 0..2){
		SetGraphicRect(0,0,0,0);
		SetGraphicAngle(0,0,0);
		SetAlpha(255);
		SetGraphicScale(1.0,1.0);	
        	DrawGraphic(StarX[n], StarY[n]);
		}
	
    }

    @Finalize {
	ascent(n in 0..length(Graphics)){DeleteGraphic(Graphics[n]);}
        ascent(n in 0..length(SE)){DeleteSE(SE[n]);}
    }

    task TMain {
        yield;

        TKeyCheck;

        TShot;
	TSubShot;
	
    }

   task TKeyCheck {
        let state;

        loop {
            state  = GetKeyState(VK_SHOT);
            bShot  = (state == KEY_PUSH || state == KEY_HOLD);
        
            state  = GetKeyState(VK_LEFT);
            bLeft  = (state == KEY_PUSH || state == KEY_HOLD);
	   
            state  = GetKeyState(VK_RIGHT);
            bRight = (state == KEY_PUSH || state == KEY_HOLD);
	   
            state  = GetKeyState(VK_SLOWMOVE);
            bSlow  = (state == KEY_PUSH || state == KEY_HOLD);

            state  = GetKeyState(VK_USER);
            bUser = (state == KEY_PUSH || state == KEY_HOLD);
            if(bUser == true && state != KEY_HOLD){
	nukeType++;
	if(nukeType > 2){
		nukeType = 0;
	}
            }
	  
            yield;
        }
    }


		}
		}
	}

	#include_function".\txt\ShotTask.txt"
	#include_function".\txt\LocalData.txt"
}

#include_script".\txt\spell1.txt"
#include_script".\txt\spell2.txt"
