Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu
- #Title[Blind sign "Lust of 20/20"]
- #Text[Not everyone can see...]
- #Player[FREE]
- #ScriptVersion[2]
- #BGM[bgm\Butterfly.mp3]
- script_enemy_main{
- let CSD = GetCurrentScriptDirectory;
- let imgBoss = CSD ~ "system\Kora.png";
- let cut = CSD ~ "system\Koracut.png";
- let bg = CSD ~ "system\Temple.png";
- @Initialize{
- SetLife(8500);
- SetTimer(100);
- SetScore(100000);
- SetMovePosition01(GetCenterX,GetCenterY,5);
- SetDurableSpellCard;
- LoadGraphic(imgBoss);
- LoadGraphic(cut);
- LoadGraphic(bg);
- CutIn(YOUMU,"- Blind sign - Lust of 20/20 -",cut,0,0,300,384);
- mainTask;
- }
- @MainLoop{
- SetCollisionA(GetX,GetY,32);
- SetCollisionB(GetX,GetY,16);
- yield;
- }
- @DrawLoop{
- // data for the boss
- SetTexture(imgBoss);
- SetRenderState(ALPHA);
- SetAlpha(225);
- SetGraphicRect(0,0,110,110);
- SetGraphicScale(0.5,0.5);
- SetGraphicAngle(0,0,0);
- DrawGraphic(GetX,GetY);
- }
- @BackGround{
- SetTexture(bg);
- SetRenderState(ALPHA);
- SetAlpha(225);
- SetGraphicRect(0,0,512,512);
- SetGraphicScale(1,1);
- SetGraphicAngle(0,0,0);
- DrawGraphic(GetCenterX,GetCenterY);
- }
- @Finalize{
- // delete the image from memory
- DeleteGraphic(imgBoss);
- DeleteGraphic(cut);
- DeleteGraphic(bg);
- }
- task mainTask{
- wait(120);
- yield;
- fire10;
- fire11;
- fire12;
- fire13;
- }
- task fire{
- //loop{
- bullet(GetEnemyX,GetEnemyY,0.5,270,WHITE03,0);
- wait(240);
- yield;
- //}
- }
- task bullet(x,y,v,a,g,d){
- let counter=0;
- let obj=Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetAngle(obj,a);
- Obj_SetSpeed(obj,0.7);
- ObjShot_SetGraphic(obj,PURPLE22);
- ObjShot_SetDelay(obj,20);
- while(!Obj_BeDeleted(obj)){
- counter++;
- if(counter==140){Obj_SetAngle(obj, atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));}
- if(counter==180){Obj_SetSpeed(obj,1);}
- if(counter==260&&d<=2){
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+0+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+90+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-90+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+130+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-130+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+170+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-170+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+180+180,WHITE22,d+1);
- }
- //if(counter==300){d = 0;}
- yield;
- }
- }
- task fire2{
- //loop{
- bullet2(GetEnemyX,GetEnemyY,0.5,90,WHITE03,0);
- wait(240);
- yield;
- //}
- }
- task bullet2(x,y,v,a,g,d){
- let counter=0;
- let obj=Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetAngle(obj,a);
- Obj_SetSpeed(obj,0.7);
- ObjShot_SetGraphic(obj,PURPLE22);
- ObjShot_SetDelay(obj,20);
- while(!Obj_BeDeleted(obj)){
- counter++;
- if(counter==140){Obj_SetAngle(obj, atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));}
- if(counter==180){Obj_SetSpeed(obj,1);}
- if(counter==260&&d<=2){
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+0+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+90+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-90+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+130+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-130+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+170+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-170+180,WHITE22,d+1);
- bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+180+180,WHITE22,d+1);
- }
- if(counter==300){d = 0;}
- yield;
- }
- }
- task fire4{
- let x = 0;
- let dir = rand_int(0,359);
- while(x<8){
- superbullet2(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),0.3,dir+50,BLUE32,0);
- dir+=45;
- x++;
- wait(5);
- }
- }
- task superbullet2(x,y,v,dir,graphic,delay){
- let obj = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetSpeed(obj,v);
- Obj_SetAngle(obj,dir);
- ObjShot_SetGraphic(obj,graphic);
- ObjShot_SetDelay(obj,delay);
- ObjShot_SetBombResist(obj,true);
- while(!Obj_BeDeleted(obj)){
- wait(30);
- Obj_SetSpeed(obj,0);
- wait(30);
- Obj_SetSpeed(obj,2);
- Obj_SetAngle(obj,dir+180);
- ObjShot_SetGraphic(obj,BLUE32);
- loop(8){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir+45,BLUE32,0);
- dir+=360/8;
- }
- Obj_Delete(obj);
- yield;
- }
- superbullet2(x,y,v,dir,graphic,delay);
- }
- task fire5{
- let x = 0;
- let dir = 90;
- while(x<8){
- superbullet4(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),1,dir,RED01,0);
- dir+=45;
- x++;
- }
- }
- task superbullet4(x,y,v,dir,graphic,delay){
- let obj = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetSpeed(obj,v);
- Obj_SetAngle(obj,dir);
- ObjShot_SetGraphic(obj,graphic);
- ObjShot_SetDelay(obj,delay);
- ObjShot_SetBombResist(obj,true);
- while(!Obj_BeDeleted(obj)){
- wait(80);
- Obj_SetSpeed(obj,1);
- Obj_SetAngle(obj,dir+90);
- ObjShot_SetGraphic(obj,RED01);
- loop(4){
- CreateLaser01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,200,40,RED04,0);
- dir+=360/4;
- }
- loop(18){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED02,0);
- dir+=360/18;
- }
- wait(120);
- Obj_SetSpeed(obj,0);
- wait(60);
- Obj_SetSpeed(obj,1);
- Obj_SetAngle(obj,dir-90);
- loop(18){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED04,0);
- dir+=360/18;
- }
- wait(480);
- yield;
- }
- superbullet4(x,y,v,dir,graphic,delay);
- }
- task fire6{
- loop{
- CreateLaserA(0, GetX-200, GetY-230, 300, 120, ORANGE11,0);
- SetLaserDataA(0, 0, 65, -0.2, 0, 0, 0);
- SetShotKillTime(0, 220);
- ascent(i in 0..30){
- ascent(j in 0..30){
- CreateShotA(1, 0, 0, 30);
- SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, ORANGE21);
- AddShot(i*30, 0, 1, j*20);
- }
- }
- FireShot(0);
- wait(720);
- yield;
- }
- }
- task fire7{
- loop{
- CreateLaserA(0, GetX+200, GetY-230, 300, 120, ORANGE11,0);
- SetLaserDataA(0, 0, 115, 0.2, 0, 0, 0);
- SetShotKillTime(0, 220);
- ascent(i in 0..30){
- ascent(j in 0..30){
- CreateShotA(1, 0, 0, 30);
- SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, ORANGE21);
- AddShot(i*30, 0, 1, j*20);
- }
- }
- FireShot(0);
- wait(720);
- yield;
- }
- }
- task fire8{
- loop{
- CreateLaserA(0, GetX+180, GetY-60, 200, 30, YELLOW11,0);
- SetLaserDataA(0, 0, 90, 0.5, 0, 0, 0);
- SetShotKillTime(0, 220);
- ascent(i in 0..30){
- ascent(j in 0..30){
- CreateShotA(1, 0, 0, 30);
- SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, YELLOW21);
- AddShot(i*30, 0, 1, j*20);
- }
- }
- FireShot(0);
- wait(600);
- yield;
- }
- }
- task fire9{
- loop{
- CreateLaserA(0, GetX-180, GetY-60, 200, 30, YELLOW11,0);
- SetLaserDataA(0, 0, 90, -0.5, 0, 0, 0);
- SetShotKillTime(0, 220);
- ascent(i in 0..30){
- ascent(j in 0..30){
- CreateShotA(1, 0, 0, 30);
- SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, YELLOW21);
- AddShot(i*30, 0, 1, j*20);
- }
- }
- FireShot(0);
- wait(600);
- yield;
- }
- }
- task fire10{
- let x = 0;
- let dir = 180;
- while(x<8){
- superbullet5(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),1.5,dir+180,BLUE22,0);
- dir+=45;
- x++;
- }
- }
- task superbullet5(x,y,v,dir,graphic,delay){
- let obj = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetSpeed(obj,v);
- Obj_SetAngle(obj,dir);
- ObjShot_SetGraphic(obj,graphic);
- ObjShot_SetDelay(obj,delay);
- ObjShot_SetBombResist(obj,true);
- while(!Obj_BeDeleted(obj)){
- wait(80);
- Obj_SetSpeed(obj,1);
- Obj_SetAngle(obj,dir+180);
- ObjShot_SetGraphic(obj,BLUE22);
- loop(6){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,PURPLE22,0);
- dir+=360/12;
- }
- wait(100);
- loop(6){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,PURPLE22,0);
- dir+=360/12;
- }
- wait(120);
- yield;
- }
- superbullet5(x,y,v,dir,graphic,delay);
- }
- task fire11{
- let x = 0;
- let dir = 90;
- while(x<12){
- superbullet3(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),0.5,dir,RED22,0);
- dir+=60;
- x++;
- }
- }
- task superbullet3(x,y,v,dir,graphic,delay){
- let obj = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(obj,x,y);
- Obj_SetSpeed(obj,v);
- Obj_SetAngle(obj,dir);
- ObjShot_SetGraphic(obj,graphic);
- ObjShot_SetDelay(obj,delay);
- ObjShot_SetBombResist(obj,true);
- while(!Obj_BeDeleted(obj)){
- wait(40);
- Obj_SetSpeed(obj,0);
- wait(45);
- ObjShot_SetGraphic(obj,RED22);
- loop(18){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED22,0);
- dir+=360/18;
- }
- wait(60);
- loop(18){
- CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED22,0);
- dir+=360/18;
- }
- wait(720);
- yield;
- }
- superbullet3(x,y,v,dir,graphic,delay);
- }
- task fire12{
- loop{
- CreateLaserA(0, GetX, GetY, 1, 1, GREEN01,0);
- SetLaserDataA(0, 0, 180, 4, 0, 0, 0);
- SetShotKillTime(0, 320);
- ascent(i in 0..60){
- ascent(j in 0..20){
- CreateShotA(1, 0, 0, 100);
- SetShotDataA(1, 0, 0, 0, 0, 0.8, 3, GREEN22);
- AddShot(i*6, 0, 1, j*60);
- }
- }
- FireShot(0);
- wait(840);
- yield;
- }
- }
- task fire13{
- loop{
- CreateLaserA(0, GetX, GetY, 1, 1, ORANGE01,0);
- SetLaserDataA(0, 0, 180, 6, 0, 0, 0);
- SetShotKillTime(0, 320);
- ascent(i in 0..30){
- ascent(j in 0..60){
- CreateShotA(1, 0, 0, 100);
- SetShotDataA(1, 0, 0, 0, 0, 0.8, 0.5, ORANGE22);
- AddShot(i*3, 0, 1, j*30);
- }
- }
- FireShot(0);
- wait(960);
- yield;
- }
- }
- // wait function
- function wait(w){
- loop(w){yield;}
- }
- }
- // wait function
- function wait(w){
- loop(w){yield;}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement