Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu
- #Title[Yuyuko Encounter 4]
- #Text[4th Non-Spell Card of Yuyuko]
- #Player[FREE]
- #ScriptVersion[2]
- script_enemy_main{
- #include_function ".\System\variables.txt"
- #include_function ".\System\functions.txt"
- let frameCount = 0;
- @Initialize{
- LoadGraphic(yuyutex);
- LoadUserShotData(shots);
- SetLife(4000);
- SetTimer(60);
- SetDamageRate(80,65);
- SetMovePosition01(GetCenterX,GetCenterY-100,3);
- SetInvincibility(120);
- mainTask;
- InitBoss;
- }
- @MainLoop{
- SetCollisionA(GetX,GetY,20);
- SetCollisionB(GetX,GetY,15);
- yield;
- }
- @DrawLoop{
- SetTexture(yuyutex);
- SetRenderState(ALPHA);
- SetAlpha(255);
- SetGraphicScale(1,1);
- SetGraphicAngle(0,0,0);
- if(int(GetSpeedX()) == 0){
- SetGraphicAngle(0,0,0);
- if(f<10){ SetGraphicRect(0,0,48,78); }
- if(f>=10 && f<20){ SetGraphicRect(48,0,96,78); }
- if(f>=20 && f<30){ SetGraphicRect(96,0,144,78); }
- if(f>=30 && f<40){ SetGraphicRect(144,0,192,78); }
- f2 = 0;
- }
- if(GetSpeedX() > 0){
- if(f2<5){ SetGraphicRect(0,78,48,156); }
- if(f2>=5 && f2<10){ SetGraphicRect(48,78,96,156); }
- if(f2>=10){ SetGraphicRect(96,78,144,156); }
- f2++;
- }
- if(GetSpeedX() < 0){
- SetGraphicAngle(180,0,0);
- if(f2<5){ SetGraphicRect(0,156,48,234); }
- if(f2>=5 && f2<10){ SetGraphicRect(48,156,96,234); }
- if(f2>=10 && f2<15){ SetGraphicRect(96,156,144,234); }
- if(f2>=20){ SetGraphicRect(144,156,192,234); }
- f2++;
- }
- DrawGraphic(GetX,GetY+5*sin(float));
- float+=3;
- f++;
- if(f==40){
- f = 0;
- }
- }
- @BackGround{
- }
- @Finalize{
- DeleteGraphic(yuyutex);
- }
- task mainTask{
- wait(90);
- fastMovement; //2nd movement function inside the functions.txt
- butterflyRing;
- bulletStreak;
- }
- task butterflyRing{
- let x = 0;
- let dir = 0;
- let count = 36;
- let rev = count*10;
- let rad = 50;
- loop{
- while(x<count){
- CreateShotA(1,GetEnemyX+rad*cos(dir),GetEnemyY+rad*sin(dir),10);
- SetShotDataA(1,0,1.5,dir,0,0,2,213);
- FireShot(1);
- dir+=rev/count;
- x++;
- }
- x = 0;
- wait(80);
- yield;
- }
- }
- task bulletStreak{
- let pattern = 0;
- let x =0;
- let count = 20;
- let angle1 = 50;
- let angle2 = 130;
- let angle3 = 90;
- let angle4 = 80;
- let delay = 30;
- let aN1 = angle2;
- let aN2 = angle1;
- let aN3 = 100;
- let aN4 = 65;
- loop{
- if(pattern == 0){
- //purple shots
- while(x<count){
- CreateShotA(1,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(1,0,2,angle1,0,0,0,12);
- SetShotDataA(1,50,1,angle1,0,0,0,12);
- SetShotDataA(1,60,0.5,angle1,0,0,0,12);
- SetShotDataA(1,70,0,angle1,0,0,0,12);
- SetShotDataA(1,90,2,GetAngleToPlayer,0,0,0,12);
- wait(2);
- FireShot(1);
- CreateShotA(2,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(2,0,2,angle2,0,0,0,12);
- SetShotDataA(2,50,1,angle1,0,0,0,12);
- SetShotDataA(2,60,0.5,angle1,0,0,0,12);
- SetShotDataA(2,70,0,angle2,0,0,0,12);
- SetShotDataA(2,90,2,GetAngleToPlayer,0,0,0,12);
- wait(2);
- FireShot(2);
- x++;
- }
- x = 0;
- wait(5);
- }
- //aqua shots
- if(pattern == 1){
- while(x<count){
- CreateShotA(3,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(3,0,2,angle1,0,0,0,17);
- SetShotDataA(3,50,1,angle1,0,0,0,17);
- SetShotDataA(3,60,0.5,angle1,0,0,0,17);
- SetShotDataA(3,70,0,angle1,0,0,0,17);
- SetShotDataA(3,90,2,aN1,0,0,0,17);
- wait(2);
- FireShot(3);
- CreateShotA(4,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(4,0,2,angle3,0,0,0,17);
- SetShotDataA(4,50,1,angle1,0,0,0,17);
- SetShotDataA(4,60,0.5,angle1,0,0,0,17);
- SetShotDataA(4,70,0,angle3,0,0,0,17);
- SetShotDataA(4,90,2,aN3,0,0,0,17);
- wait(2);
- FireShot(4);
- CreateShotA(5,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(5,0,2,angle2,0,0,0,17);
- SetShotDataA(5,50,1,angle1,0,0,0,17);
- SetShotDataA(5,60,0.5,angle1,0,0,0,17);
- SetShotDataA(5,70,0,angle2,0,0,0,17);
- SetShotDataA(5,90,2,aN4,0,0,0,17);
- wait(2);
- FireShot(5);
- x++;
- }
- x = 0;
- wait(5);
- }
- //teal shots
- if(pattern == 2){
- //purple shots
- while(x<count){
- CreateShotA(6,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(6,0,2,angle1,0,0,0,19);
- SetShotDataA(6,50,1,angle1,0,0,0,19);
- SetShotDataA(6,60,0.5,angle1,0,0,0,19);
- SetShotDataA(6,70,0,angle1,0,0,0,19);
- SetShotDataA(6,90,2,aN3,0,0,0,19);
- wait(2);
- FireShot(6);
- CreateShotA(7,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(7,0,2,angle4,0,0,0,19);
- SetShotDataA(7,50,1,angle4,0,0,0,19);
- SetShotDataA(7,60,0.5,angle4,0,0,0,19);
- SetShotDataA(7,70,0,angle4,0,0,0,19);
- SetShotDataA(7,90,2,aN3,0,0,0,19);
- wait(2);
- FireShot(7);
- CreateShotA(8,GetEnemyX,GetEnemyY,delay);
- SetShotDataA(8,0,2,angle2,0,0,0,19);
- SetShotDataA(8,50,1,angle2,0,0,0,19);
- SetShotDataA(8,60,0.5,angle2,0,0,0,19);
- SetShotDataA(8,70,0,angle2,0,0,0,19);
- SetShotDataA(8,90,2,aN4,0,0,0,19);
- wait(2);
- FireShot(8);
- x++;
- }
- x = 0;
- wait(5);
- }
- pattern++;
- if(pattern > 2){
- pattern = 0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment