Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #ScriptVersion[3]
  3. #Title["Non 1"]
  4. //#include "./LenenBossRender/RenderLenen.txt"
  5. //#include "./lib_sound.txt"
  6. //#include "./LenenShot/JINXShot_Const.txt"
  7. //#System["script/Marisa Kirisame/default_system/Default_System.txt"]
  8. //#include "./Textout_function.txt"
  9. //#include "./Effects.txt"
  10. #include "./lib_anime_Sakuya.txt"
  11. #include "./Stellar_FX/Stellar FX/Stellar.dnh"
  12. let bossObj;
  13. let bossX = 0;
  14. let bossY = 0;
  15. let animFrame = 0;
  16. let animFrame2 = 0;
  17. let bossSprite = ObjPrim_Create(OBJ_SPRITE_2D);
  18. let castframe = 0;
  19. let imgBoss = GetCurrentScriptDirectory ~ "./sakuya_dot.png";
  20.  
  21.  
  22.  
  23.  
  24. @Initialize {
  25. bossObj = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  26. ObjEnemy_Regist(bossObj);
  27. ObjPrim_SetTexture(bossObj,imgBoss);
  28. ObjSprite2D_SetSourceRect(bossObj,0,0,128,128);
  29.  
  30. ObjSprite2D_SetDestCenter(bossObj);
  31. Stellar_Init();
  32. Stellar_AuraTexture(imgBoss);
  33.  
  34. TFinalize;
  35.  
  36.  
  37.  
  38.  
  39.  
  40. ObjMove_SetDestAtSpeed(bossObj,192,120,5);
  41. BossMove;
  42.  
  43. //Textout("Marisa Kirisame",-90,16,255,255,255,255,250,250,165,165,165,20);
  44. SetStgFrame(25,20,GetScreenWidth-220,GetScreenHeight-10,20,80);
  45.  
  46. SetPlayerClip(20,0.1,GetScreenWidth-220,GetScreenHeight-10);
  47. }
  48.  
  49. @Event {
  50.  
  51. alternative(GetEventType())
  52. case(EV_REQUEST_LIFE) {
  53. SetScriptResult(2500);
  54. }
  55. case(EV_REQUEST_TIMER) {
  56. SetScriptResult(60);
  57.  
  58.  
  59. }
  60. case(EV_REQUEST_SPELL_SCORE)
  61. {
  62. SetScriptResult(1000000);
  63. }
  64. }
  65. let RectX = GetTextureWidth(imgBoss)/4;
  66. let RectY = GetTextureHeight(imgBoss)/3;
  67. let cosine1=0;
  68. let cosine2=0;
  69. @MainLoop {
  70. let speed;
  71. let dir;
  72.  
  73. speed = ObjMove_GetSpeed(bossObj);
  74. dir = ObjMove_GetAngle(bossObj);
  75. yield;
  76.  
  77. cosine1 = cos(dir);
  78. cosine2 = cosine1;
  79. ObjEnemy_SetIntersectionCircleToShot(bossObj,ObjMove_GetX(bossObj),ObjMove_GetY(bossObj),14);
  80. ObjEnemy_SetIntersectionCircleToPlayer(bossObj,ObjMove_GetX(bossObj),ObjMove_GetY(bossObj),19);
  81.  
  82. if(speed == 0){
  83. if(animFrame < 10) { ObjSprite2D_SetSourceRect(bossObj,0,0,128,128); }
  84. if(animFrame >= 10 && animFrame < 20) { ObjSprite2D_SetSourceRect(bossObj,128,0,128*2,128); }
  85. if(animFrame >= 20 && animFrame < 30) { ObjSprite2D_SetSourceRect(bossObj,0,128,128,128*2); }
  86. if(animFrame >= 30 && animFrame < 40) { ObjSprite2D_SetSourceRect(bossObj,128*1,128,128*2,128*2); }
  87. if(animFrame >= 40) { ObjSprite2D_SetSourceRect(bossObj,0,128*2,128,128*3); }
  88.  
  89. animFrame2 = 0;
  90.  
  91. }
  92. else if(cosine1 < 0){
  93. if(animFrame2 < 10) { ObjSprite2D_SetSourceRect(bossObj,128*2,0,128*3,128); }
  94. if(animFrame2 >= 10 && animFrame2 < 20) { ObjSprite2D_SetSourceRect(bossObj,252,128*1,381,128*2); }
  95.  
  96.  
  97.  
  98. }
  99.  
  100. else if(cosine1 > 0){
  101. if(cosine1 >= 0) { animFrame2 = 0; }
  102.  
  103. if(animFrame2 < 10) { ObjSprite2D_SetSourceRect(bossObj,261,253,390,382); }
  104. if(animFrame2 >= 10 && animFrame2 < 20) { ObjSprite2D_SetSourceRect(bossObj,261,382,390,511); }
  105.  
  106. //animFrame2++;
  107. }
  108. yield;
  109. if(Obj_GetValueD(bossObj,"cast",0) == 1 && speed == 0 && animFrame2 == 0){
  110.  
  111. animFrame=0;
  112. animFrame2=0;
  113. loop(6) { if(castframe >= 30 && castframe < 60){ObjSprite2D_SetSourceRect(bossObj,512,120*0,640,128*1);} }
  114. loop(6) { if(castframe >= 60 && castframe < 90){ObjSprite2D_SetSourceRect(bossObj,512,120*1,640,128*2);} }
  115. loop(6) { if(castframe >= 90){ObjSprite2D_SetSourceRect(bossObj,512,120*2,640,129*3);} }
  116.  
  117. if(castframe < 90){castframe++;}
  118.  
  119. }
  120.  
  121. animFrame++;
  122. animFrame2+=2;
  123. if(animFrame > 40) { animFrame = 0; }
  124.  
  125. if(cosine1 != cosine2)
  126. {
  127. animFrame2 = 0;
  128. }
  129.  
  130.  
  131. yield;
  132. }
  133. @Finalize {
  134. }
  135.  
  136. function wait(f)
  137. {
  138. loop(f)
  139. {
  140. yield;
  141. }
  142. return;
  143. }
  144.  
  145. task BossMove{
  146. wait(60*4);
  147. ObjMove_SetDestAtFrame(bossObj,100,120,60*3);
  148. Obj_SetValue(bossObj,"cast",1);
  149. wait(60*8);
  150. Obj_SetValue(bossObj,"cast",0);
  151. ObjMove_SetDestAtFrame(bossObj,192,120,60*3);
  152. wait(60*12);
  153. Obj_SetValue(bossObj,"cast",1);
  154. wait(60*16);
  155. Obj_SetValue(bossObj,"cast",0);
  156. }
  157.  
  158. task TFinalize {
  159. while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > 0){yield;}
  160. Obj_Delete(bossObj);
  161. DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
  162. SetAutoDeleteObject(true);
  163. CloseScript(GetOwnScriptID());
  164. return;
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement