Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu
- #Title[Spell Card 1]
- #Text[Easy Mode.]
- #Player[FREE]
- #ScriptVersion[2]
- script_enemy_main{
- let CSD = GetCurrentScriptDirectory;
- let niceshot = CSD~"\supershot\supershot.txt";
- let death = CSD~"BossDeath.wav";
- let time01 = CSD~"timeout01.wav";
- let time02 = CSD~"timeout02.wav";
- let frame = 0;
- let ID1 = Obj_Create(OBJ_SHOT);
- let spellbg = CSD~"spellbg.png";
- let spellbg2 = CSD~"spellbg2.png";
- let objarr = [];
- let circle = CSD~"Circle.png";
- let SE1 = CSD~"Shot1.WAV";
- let SE2 = CSD~"Shot4.WAV";
- let SE3 = CSD~"se_ch02.WAV";
- let booksheet = CSD~"servant.png";
- #include_function ".\AnimationLib.dnh"
- #include_function ".\FunctionLib.dnh"
- @Initialize{
- LoadUserShotData(niceshot);
- LoadGraphic(circle);
- LoadGraphic(booksheet);
- LoadGraphic(spellbg2);
- LoadGraphic(spellbg);
- SetLife(1000);
- SetTimer(60);
- SetScore(100000);
- SetInvincibility(100);
- SetMovePosition03(GetCenterX, GetCenterY-120, 10, 4);
- SetDamageRate(10,5);
- SetEffectForZeroLife(70,200,1);
- mainTask;
- SetText("Fire & Water Sign"\""Frozen Rain"\");
- IceStorm;
- Timer;
- CreateAnimation("book", "intro", 4);
- SetAnimationFrame("book", "intro", 0, booksheet, 12, 0, 2, 31, 30);
- SetAnimationFrame("book", "intro", 1, booksheet, 12, 31, 2, 62, 30);
- SetAnimationFrame("book", "intro", 2, booksheet, 12, 62, 2, 93, 30);
- SetAnimationFrame("book", "intro", 3, booksheet, 12, 93, 2, 124, 30);
- Animate("book","intro",false);
- }
- @MainLoop{
- yield;
- SetCollisionA(GetX,GetY,10);
- SetCollisionB(GetX,GetY,15);
- if(frame<900){frame++;}
- if(frame==800){SetDamageRate(50,50);}
- }
- let circlespin = 0;
- let wave = 0;
- let float = 0;
- @DrawLoop{
- SetTexture(circle);
- SetGraphicRect(64,64,192,192);
- SetGraphicScale(1+sin(wave)*0.5,1+sin(wave)*0.5);
- SetGraphicAngle(0,0,circlespin);
- SetAlpha(150);
- DrawGraphic(GetX,GetY);
- circlespin+=5;
- wave+=2;
- SetTexture(booksheet);
- SetGraphicScale(1,1);
- SetAlpha(255);
- SetGraphicAngle(0,0,0);
- DrawAnimatedSprite("book", GetX, GetY+sin(float)*4);
- float += (1/((|GetSpeedX|)+1))*3;
- }
- @Finalize{
- }
- let bgalpha=0;
- let bgalpha2=0;
- let bgscroll=0;
- @BackGround{
- if(bgalpha<100){bgalpha+=2;}
- if(bgalpha2<70){bgalpha2+=2;}
- SetTexture(spellbg);
- SetGraphicRect(0,0,256,256);
- SetGraphicScale(2,2);
- SetAlpha(bgalpha);
- DrawGraphic(GetCenterX,GetCenterY);
- SetTexture(spellbg2);
- SetGraphicRect(0+bgscroll,0+bgscroll,256+bgscroll,256+bgscroll);
- SetGraphicScale(2,2);
- SetAlpha(bgalpha2);
- DrawGraphic(GetCenterX,GetCenterY);
- bgscroll+=2;
- }
- task mainTask{
- wait(100);
- let addangle=0;
- loop{
- addangle+=46.5;
- SetColor(150,0,0);
- PlaySE(SE3);
- Concentration01(30);
- SetColor(255,255,255);
- wait(30);
- PlaySE(SE1);
- ascent(i in 0..10){
- FireBullet(5,i*360/10+addangle);}
- wait(540);
- }
- }
- task IceStorm{
- wait(100);
- let wave = 0;
- let wave2 = 0;
- loop{
- PlaySE(SE2);
- ascent(i in 0..4){
- IceBullet(60+i*GetClipMaxX/4+sin(wave)*50,GetClipMinY,90+sin(wave2)*45);
- }
- wave+=73.5;
- wave2+=23.5;
- wait(30);
- }
- }
- task FireBullet(speed,angle){
- ID1 = Obj_Create(OBJ_SHOT);
- objarr = objarr~[ID1]; //Add the object to the global array.
- Obj_SetPosition(ID1,GetX,GetY);
- Obj_SetSpeed(ID1,speed);
- Obj_SetAngle(ID1,angle);
- Obj_SetCollisionToObject(ID1,true);
- ObjShot_SetDelay(ID1,10);
- ObjShot_SetGraphic(ID1,237);
- while(!Obj_BeDeleted(ID1)){
- yield;
- }
- ascent(i in 0..length(objarr)){ //Go through all objects and remove self
- if(objarr[i] == ID1){
- objarr = erase(objarr,i);
- break;
- }
- }
- }
- task IceBullet(X,Y,angle){
- let ID2 = Obj_Create(OBJ_SHOT);
- Obj_SetPosition(ID2,X,Y);
- Obj_SetSpeed(ID2,3);
- Obj_SetAngle(ID2,angle);
- Obj_SetCollisionToObject(ID2,true);
- ObjShot_SetDelay(ID2,20);
- ObjShot_SetGraphic(ID2,205);
- while(!Obj_BeDeleted(ID2)){
- ascent(i in 0..length(objarr)){ //Go through all objects
- if(Collision_Obj_Obj(ID2,objarr[i])){
- ascent(i in 0..5){
- CreateShotA(1,Obj_GetX(ID2),Obj_GetY(ID2),0);
- SetShotDataA(1,0,1,i*72,0,0,0,240);
- SetShotDataA(1,60,0,90,0,0.1,5,240);
- FireShot(1);
- }
- Obj_Delete(ID2);
- }}
- yield;
- }
- }
- task Timer{
- loop{
- if (GetTimer > 5 && GetTimer <= 11){PlaySE(time01);}
- if (GetTimer >= 1 && GetTimer <= 5){PlaySE(time02);}
- wait(60);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement