SilentSorrow

Remake of one of Yuyuko's Non-spellcard

Jan 1st, 2014
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. #TouhouDanmakufu
  2. #Title[Yuyuko Encounter 4]
  3. #Text[4th Non-Spell Card of Yuyuko]
  4. #Player[FREE]
  5. #ScriptVersion[2]
  6.  
  7. script_enemy_main{
  8. #include_function ".\System\variables.txt"
  9. #include_function ".\System\functions.txt"
  10.  
  11. let frameCount = 0;
  12.  
  13. @Initialize{
  14. LoadGraphic(yuyutex);
  15. LoadUserShotData(shots);
  16. SetLife(4000);
  17. SetTimer(60);
  18. SetDamageRate(80,65);
  19. SetMovePosition01(GetCenterX,GetCenterY-100,3);
  20. SetInvincibility(120);
  21.  
  22. mainTask;
  23. InitBoss;
  24. }
  25.  
  26.  
  27. @MainLoop{
  28. SetCollisionA(GetX,GetY,20);
  29. SetCollisionB(GetX,GetY,15);
  30. yield;
  31. }
  32.  
  33.  
  34. @DrawLoop{
  35. SetTexture(yuyutex);
  36. SetRenderState(ALPHA);
  37. SetAlpha(255);
  38. SetGraphicScale(1,1);
  39. SetGraphicAngle(0,0,0);
  40.  
  41. if(int(GetSpeedX()) == 0){
  42. SetGraphicAngle(0,0,0);
  43. if(f<10){ SetGraphicRect(0,0,48,78); }
  44. if(f>=10 && f<20){ SetGraphicRect(48,0,96,78); }
  45. if(f>=20 && f<30){ SetGraphicRect(96,0,144,78); }
  46. if(f>=30 && f<40){ SetGraphicRect(144,0,192,78); }
  47. f2 = 0;
  48. }
  49.  
  50. if(GetSpeedX() > 0){
  51. if(f2<5){ SetGraphicRect(0,78,48,156); }
  52. if(f2>=5 && f2<10){ SetGraphicRect(48,78,96,156); }
  53. if(f2>=10){ SetGraphicRect(96,78,144,156); }
  54. f2++;
  55. }
  56.  
  57. if(GetSpeedX() < 0){
  58. SetGraphicAngle(180,0,0);
  59. if(f2<5){ SetGraphicRect(0,156,48,234); }
  60. if(f2>=5 && f2<10){ SetGraphicRect(48,156,96,234); }
  61. if(f2>=10 && f2<15){ SetGraphicRect(96,156,144,234); }
  62. if(f2>=20){ SetGraphicRect(144,156,192,234); }
  63. f2++;
  64. }
  65.  
  66. DrawGraphic(GetX,GetY+5*sin(float));
  67.  
  68. float+=3;
  69. f++;
  70. if(f==40){
  71. f = 0;
  72. }
  73.  
  74. }
  75.  
  76.  
  77. @BackGround{
  78. }
  79.  
  80.  
  81. @Finalize{
  82. DeleteGraphic(yuyutex);
  83. }
  84.  
  85.  
  86. task mainTask{
  87. wait(90);
  88. fastMovement; //2nd movement function inside the functions.txt
  89. butterflyRing;
  90. bulletStreak;
  91. }
  92.  
  93.  
  94. task butterflyRing{
  95. let x = 0;
  96. let dir = 0;
  97. let count = 36;
  98. let rev = count*10;
  99.  
  100. let rad = 50;
  101.  
  102. loop{
  103. while(x<count){
  104. CreateShotA(1,GetEnemyX+rad*cos(dir),GetEnemyY+rad*sin(dir),10);
  105. SetShotDataA(1,0,1.5,dir,0,0,2,213);
  106. FireShot(1);
  107.  
  108. dir+=rev/count;
  109. x++;
  110. }
  111. x = 0;
  112. wait(80);
  113. yield;
  114. }
  115. }
  116.  
  117.  
  118. task bulletStreak{
  119. let pattern = 0;
  120. let x =0;
  121. let count = 20;
  122. let angle1 = 50;
  123. let angle2 = 130;
  124. let angle3 = 90;
  125. let angle4 = 80;
  126. let delay = 30;
  127.  
  128. let aN1 = angle2;
  129. let aN2 = angle1;
  130. let aN3 = 100;
  131. let aN4 = 65;
  132.  
  133. loop{
  134. if(pattern == 0){
  135. //purple shots
  136. while(x<count){
  137. CreateShotA(1,GetEnemyX,GetEnemyY,delay);
  138. SetShotDataA(1,0,2,angle1,0,0,0,12);
  139. SetShotDataA(1,50,1,angle1,0,0,0,12);
  140. SetShotDataA(1,60,0.5,angle1,0,0,0,12);
  141. SetShotDataA(1,70,0,angle1,0,0,0,12);
  142. SetShotDataA(1,90,2,GetAngleToPlayer,0,0,0,12);
  143. wait(2);
  144. FireShot(1);
  145.  
  146. CreateShotA(2,GetEnemyX,GetEnemyY,delay);
  147. SetShotDataA(2,0,2,angle2,0,0,0,12);
  148. SetShotDataA(2,50,1,angle1,0,0,0,12);
  149. SetShotDataA(2,60,0.5,angle1,0,0,0,12);
  150. SetShotDataA(2,70,0,angle2,0,0,0,12);
  151. SetShotDataA(2,90,2,GetAngleToPlayer,0,0,0,12);
  152. wait(2);
  153. FireShot(2);
  154.  
  155. x++;
  156. }
  157. x = 0;
  158. wait(5);
  159. }
  160.  
  161. //aqua shots
  162. if(pattern == 1){
  163. while(x<count){
  164. CreateShotA(3,GetEnemyX,GetEnemyY,delay);
  165. SetShotDataA(3,0,2,angle1,0,0,0,17);
  166. SetShotDataA(3,50,1,angle1,0,0,0,17);
  167. SetShotDataA(3,60,0.5,angle1,0,0,0,17);
  168. SetShotDataA(3,70,0,angle1,0,0,0,17);
  169. SetShotDataA(3,90,2,aN1,0,0,0,17);
  170. wait(2);
  171. FireShot(3);
  172.  
  173. CreateShotA(4,GetEnemyX,GetEnemyY,delay);
  174. SetShotDataA(4,0,2,angle3,0,0,0,17);
  175. SetShotDataA(4,50,1,angle1,0,0,0,17);
  176. SetShotDataA(4,60,0.5,angle1,0,0,0,17);
  177. SetShotDataA(4,70,0,angle3,0,0,0,17);
  178. SetShotDataA(4,90,2,aN3,0,0,0,17);
  179. wait(2);
  180. FireShot(4);
  181.  
  182. CreateShotA(5,GetEnemyX,GetEnemyY,delay);
  183. SetShotDataA(5,0,2,angle2,0,0,0,17);
  184. SetShotDataA(5,50,1,angle1,0,0,0,17);
  185. SetShotDataA(5,60,0.5,angle1,0,0,0,17);
  186. SetShotDataA(5,70,0,angle2,0,0,0,17);
  187. SetShotDataA(5,90,2,aN4,0,0,0,17);
  188. wait(2);
  189. FireShot(5);
  190.  
  191. x++;
  192. }
  193. x = 0;
  194. wait(5);
  195. }
  196.  
  197. //teal shots
  198. if(pattern == 2){
  199. //purple shots
  200. while(x<count){
  201. CreateShotA(6,GetEnemyX,GetEnemyY,delay);
  202. SetShotDataA(6,0,2,angle1,0,0,0,19);
  203. SetShotDataA(6,50,1,angle1,0,0,0,19);
  204. SetShotDataA(6,60,0.5,angle1,0,0,0,19);
  205. SetShotDataA(6,70,0,angle1,0,0,0,19);
  206. SetShotDataA(6,90,2,aN3,0,0,0,19);
  207. wait(2);
  208. FireShot(6);
  209.  
  210. CreateShotA(7,GetEnemyX,GetEnemyY,delay);
  211. SetShotDataA(7,0,2,angle4,0,0,0,19);
  212. SetShotDataA(7,50,1,angle4,0,0,0,19);
  213. SetShotDataA(7,60,0.5,angle4,0,0,0,19);
  214. SetShotDataA(7,70,0,angle4,0,0,0,19);
  215. SetShotDataA(7,90,2,aN3,0,0,0,19);
  216. wait(2);
  217. FireShot(7);
  218.  
  219. CreateShotA(8,GetEnemyX,GetEnemyY,delay);
  220. SetShotDataA(8,0,2,angle2,0,0,0,19);
  221. SetShotDataA(8,50,1,angle2,0,0,0,19);
  222. SetShotDataA(8,60,0.5,angle2,0,0,0,19);
  223. SetShotDataA(8,70,0,angle2,0,0,0,19);
  224. SetShotDataA(8,90,2,aN4,0,0,0,19);
  225. wait(2);
  226. FireShot(8);
  227.  
  228. x++;
  229. }
  230. x = 0;
  231. wait(5);
  232. }
  233.  
  234. pattern++;
  235. if(pattern > 2){
  236. pattern = 0;
  237. }
  238. }
  239. }
  240. }
Advertisement
Add Comment
Please, Sign In to add comment