Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Single]
- #ScriptVersion[3]
- #Title["beta0.9!"]
- #Text["Code by Sparen[r]My First Bullet"]
- #BGM["Native Faith.mp3"]
- #include "script/default_system/Shot/ZUNShot_Const.txt"
- let objBoss;
- let objScene = GetEnemyBossSceneObjectID();
- let count = -120;
- @Event{
- alternative(GetEventType())
- case(EV_REQUEST_LIFE){
- SetScriptResult(500);
- }
- case(EV_REQUEST_TIMER){
- SetScriptResult(60);
- }
- case(EV_REQUEST_SPELL_SCORE){
- SetScriptResult(1000000);
- }
- }
- @Initialize{
- objBoss = ObjEnemy_Create(OBJ_ENEMY_BOSS);
- ObjEnemy_Regist(objBoss);
- ObjMove_SetDestAtFrame(objBoss, GetCenterX, GetCenterY-60, 60);
- ObjEnemyBossScene_StartSpell(objScene);
- TDrawLoop;
- TFinalize;
- }
- @MainLoop{
- ObjEnemy_SetIntersectionCircleToShot(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 32);
- ObjEnemy_SetIntersectionCircleToPlayer(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 24);
- if(count % 30 == 0){movement;}
- if(count % 30 == 0 && count >= 0){
- taskA;
- }
- count++;
- yield;
- }
- task taskA{
- if(ObjEnemy_GetInfo(objBoss, INFO_LIFE) <= 0){return;}
- let angleT = 0;
- loop(18){
- CreateShotA1(GetEnemyX(objBoss), GetEnemyY(objBoss), 2, angleT, 9, 10);
- angleT += 360/18;
- }
- task movement{
- while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){
- ObjMove_SetDestAtFrame(objBoss, rand(GetCenterX()+90, GetCenterX()-90), rand(GetCenterY() -60, GetCenterY() -120), 60);
- wait(240);
- }
- }
- task TDrawLoop{
- let suwako = GetCurrentScriptDirectory() ~ "texture/suwako.png";
- ObjPrim_SetTexture(objBoss, suwako);
- ObjSprite2D_SetSourceRect(objBoss, 0, 0, 256, 256);
- ObjSprite2D_SetDestCenter(objBoss);
- }
- task TFinalize {
- while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){yield;}
- if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)
- +ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
- AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
- }
- Obj_Delete(objBoss);
- DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
- SetAutoDeleteObject(true);
- CloseScript(GetOwnScriptID());
- return;
- }
- function GetCenterX(){
- return GetStgFrameWidth() / 2;
- }
- function GetCenterY(){
- return GetStgFrameHeight() / 2;
- }
- function wait(n){
- loop(n){yield;}
- }
Add Comment
Please, Sign In to add comment