Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.83 KB | None | 0 0
  1. #TouhouDanmakufu
  2. #Title[Blind sign "Lust of 20/20"]
  3. #Text[Not everyone can see...]
  4. #Player[FREE]
  5. #ScriptVersion[2]
  6. #BGM[bgm\Butterfly.mp3]
  7.  
  8. script_enemy_main{
  9.  
  10. let CSD = GetCurrentScriptDirectory;
  11.  
  12. let imgBoss = CSD ~ "system\Kora.png";
  13. let cut = CSD ~ "system\Koracut.png";
  14. let bg = CSD ~ "system\Temple.png";
  15.  
  16. @Initialize{
  17. SetLife(8500);
  18. SetTimer(100);
  19. SetScore(100000);
  20. SetMovePosition01(GetCenterX,GetCenterY,5);
  21. SetDurableSpellCard;
  22. LoadGraphic(imgBoss);
  23. LoadGraphic(cut);
  24. LoadGraphic(bg);
  25.  
  26. CutIn(YOUMU,"- Blind sign - Lust of 20/20 -",cut,0,0,300,384);
  27.  
  28. mainTask;
  29. }
  30.  
  31. @MainLoop{
  32. SetCollisionA(GetX,GetY,32);
  33. SetCollisionB(GetX,GetY,16);
  34. yield;
  35. }
  36.  
  37. @DrawLoop{
  38.  
  39. // data for the boss
  40. SetTexture(imgBoss);
  41. SetRenderState(ALPHA);
  42. SetAlpha(225);
  43. SetGraphicRect(0,0,110,110);
  44. SetGraphicScale(0.5,0.5);
  45. SetGraphicAngle(0,0,0);
  46. DrawGraphic(GetX,GetY);
  47.  
  48. }
  49.  
  50. @BackGround{
  51. SetTexture(bg);
  52. SetRenderState(ALPHA);
  53. SetAlpha(225);
  54. SetGraphicRect(0,0,512,512);
  55. SetGraphicScale(1,1);
  56. SetGraphicAngle(0,0,0);
  57. DrawGraphic(GetCenterX,GetCenterY);
  58.  
  59. }
  60.  
  61. @Finalize{
  62. // delete the image from memory
  63. DeleteGraphic(imgBoss);
  64. DeleteGraphic(cut);
  65. DeleteGraphic(bg);
  66.  
  67. }
  68.  
  69. task mainTask{
  70. wait(120);
  71. yield;
  72. fire10;
  73. fire11;
  74. fire12;
  75. fire13;
  76. }
  77.  
  78.  
  79. task fire{
  80. //loop{
  81. bullet(GetEnemyX,GetEnemyY,0.5,270,WHITE03,0);
  82. wait(240);
  83. yield;
  84. //}
  85. }
  86.  
  87. task bullet(x,y,v,a,g,d){
  88. let counter=0;
  89. let obj=Obj_Create(OBJ_SHOT);
  90. Obj_SetPosition(obj,x,y);
  91. Obj_SetAngle(obj,a);
  92. Obj_SetSpeed(obj,0.7);
  93. ObjShot_SetGraphic(obj,PURPLE22);
  94. ObjShot_SetDelay(obj,20);
  95. while(!Obj_BeDeleted(obj)){
  96. counter++;
  97. if(counter==140){Obj_SetAngle(obj, atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));}
  98. if(counter==180){Obj_SetSpeed(obj,1);}
  99. if(counter==260&&d<=2){
  100. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+0+180,WHITE22,d+1);
  101. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+90+180,WHITE22,d+1);
  102. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-90+180,WHITE22,d+1);
  103. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+130+180,WHITE22,d+1);
  104. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-130+180,WHITE22,d+1);
  105. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+170+180,WHITE22,d+1);
  106. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-170+180,WHITE22,d+1);
  107. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+180+180,WHITE22,d+1);
  108. }
  109. //if(counter==300){d = 0;}
  110. yield;
  111. }
  112. }
  113.  
  114. task fire2{
  115. //loop{
  116. bullet2(GetEnemyX,GetEnemyY,0.5,90,WHITE03,0);
  117. wait(240);
  118. yield;
  119. //}
  120. }
  121.  
  122. task bullet2(x,y,v,a,g,d){
  123. let counter=0;
  124. let obj=Obj_Create(OBJ_SHOT);
  125. Obj_SetPosition(obj,x,y);
  126. Obj_SetAngle(obj,a);
  127. Obj_SetSpeed(obj,0.7);
  128. ObjShot_SetGraphic(obj,PURPLE22);
  129. ObjShot_SetDelay(obj,20);
  130. while(!Obj_BeDeleted(obj)){
  131. counter++;
  132. if(counter==140){Obj_SetAngle(obj, atan2(GetPlayerY-Obj_GetY(obj),GetPlayerX-Obj_GetX(obj)));}
  133. if(counter==180){Obj_SetSpeed(obj,1);}
  134. if(counter==260&&d<=2){
  135. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+0+180,WHITE22,d+1);
  136. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+90+180,WHITE22,d+1);
  137. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-90+180,WHITE22,d+1);
  138. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+130+180,WHITE22,d+1);
  139. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-130+180,WHITE22,d+1);
  140. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+170+180,WHITE22,d+1);
  141. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)-170+180,WHITE22,d+1);
  142. bullet(Obj_GetX(obj),Obj_GetY(obj),2,Obj_GetAngle(obj)+180+180,WHITE22,d+1);
  143. }
  144. if(counter==300){d = 0;}
  145. yield;
  146. }
  147. }
  148.  
  149. task fire4{
  150. let x = 0;
  151. let dir = rand_int(0,359);
  152.  
  153. while(x<8){
  154. superbullet2(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),0.3,dir+50,BLUE32,0);
  155. dir+=45;
  156. x++;
  157. wait(5);
  158. }
  159. }
  160.  
  161. task superbullet2(x,y,v,dir,graphic,delay){
  162.  
  163. let obj = Obj_Create(OBJ_SHOT);
  164.  
  165. Obj_SetPosition(obj,x,y);
  166. Obj_SetSpeed(obj,v);
  167. Obj_SetAngle(obj,dir);
  168. ObjShot_SetGraphic(obj,graphic);
  169. ObjShot_SetDelay(obj,delay);
  170. ObjShot_SetBombResist(obj,true);
  171.  
  172. while(!Obj_BeDeleted(obj)){
  173. wait(30);
  174. Obj_SetSpeed(obj,0);
  175. wait(30);
  176. Obj_SetSpeed(obj,2);
  177. Obj_SetAngle(obj,dir+180);
  178. ObjShot_SetGraphic(obj,BLUE32);
  179. loop(8){
  180. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir+45,BLUE32,0);
  181. dir+=360/8;
  182. }
  183. Obj_Delete(obj);
  184. yield;
  185. }
  186. superbullet2(x,y,v,dir,graphic,delay);
  187. }
  188.  
  189. task fire5{
  190. let x = 0;
  191. let dir = 90;
  192.  
  193. while(x<8){
  194. superbullet4(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),1,dir,RED01,0);
  195. dir+=45;
  196. x++;
  197. }
  198. }
  199.  
  200. task superbullet4(x,y,v,dir,graphic,delay){
  201.  
  202. let obj = Obj_Create(OBJ_SHOT);
  203.  
  204. Obj_SetPosition(obj,x,y);
  205. Obj_SetSpeed(obj,v);
  206. Obj_SetAngle(obj,dir);
  207. ObjShot_SetGraphic(obj,graphic);
  208. ObjShot_SetDelay(obj,delay);
  209. ObjShot_SetBombResist(obj,true);
  210.  
  211. while(!Obj_BeDeleted(obj)){
  212.  
  213. wait(80);
  214. Obj_SetSpeed(obj,1);
  215. Obj_SetAngle(obj,dir+90);
  216. ObjShot_SetGraphic(obj,RED01);
  217. loop(4){
  218. CreateLaser01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,200,40,RED04,0);
  219. dir+=360/4;
  220. }
  221. loop(18){
  222. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED02,0);
  223. dir+=360/18;
  224. }
  225. wait(120);
  226. Obj_SetSpeed(obj,0);
  227. wait(60);
  228. Obj_SetSpeed(obj,1);
  229. Obj_SetAngle(obj,dir-90);
  230. loop(18){
  231. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED04,0);
  232. dir+=360/18;
  233. }
  234. wait(480);
  235. yield;
  236. }
  237. superbullet4(x,y,v,dir,graphic,delay);
  238. }
  239.  
  240. task fire6{
  241. loop{
  242. CreateLaserA(0, GetX-200, GetY-230, 300, 120, ORANGE11,0);
  243. SetLaserDataA(0, 0, 65, -0.2, 0, 0, 0);
  244. SetShotKillTime(0, 220);
  245. ascent(i in 0..30){
  246. ascent(j in 0..30){
  247. CreateShotA(1, 0, 0, 30);
  248. SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, ORANGE21);
  249. AddShot(i*30, 0, 1, j*20);
  250. }
  251. }
  252. FireShot(0);
  253. wait(720);
  254. yield;
  255. }
  256. }
  257.  
  258. task fire7{
  259. loop{
  260. CreateLaserA(0, GetX+200, GetY-230, 300, 120, ORANGE11,0);
  261. SetLaserDataA(0, 0, 115, 0.2, 0, 0, 0);
  262. SetShotKillTime(0, 220);
  263. ascent(i in 0..30){
  264. ascent(j in 0..30){
  265. CreateShotA(1, 0, 0, 30);
  266. SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, ORANGE21);
  267. AddShot(i*30, 0, 1, j*20);
  268. }
  269. }
  270. FireShot(0);
  271. wait(720);
  272. yield;
  273. }
  274. }
  275.  
  276. task fire8{
  277. loop{
  278. CreateLaserA(0, GetX+180, GetY-60, 200, 30, YELLOW11,0);
  279. SetLaserDataA(0, 0, 90, 0.5, 0, 0, 0);
  280. SetShotKillTime(0, 220);
  281. ascent(i in 0..30){
  282. ascent(j in 0..30){
  283. CreateShotA(1, 0, 0, 30);
  284. SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, YELLOW21);
  285. AddShot(i*30, 0, 1, j*20);
  286. }
  287. }
  288. FireShot(0);
  289. wait(600);
  290. yield;
  291. }
  292. }
  293.  
  294. task fire9{
  295. loop{
  296. CreateLaserA(0, GetX-180, GetY-60, 200, 30, YELLOW11,0);
  297. SetLaserDataA(0, 0, 90, -0.5, 0, 0, 0);
  298. SetShotKillTime(0, 220);
  299. ascent(i in 0..30){
  300. ascent(j in 0..30){
  301. CreateShotA(1, 0, 0, 30);
  302. SetShotDataA(1, 0, 0, 0, 0, 0.4, 3, YELLOW21);
  303. AddShot(i*30, 0, 1, j*20);
  304. }
  305. }
  306. FireShot(0);
  307. wait(600);
  308. yield;
  309. }
  310. }
  311.  
  312. task fire10{
  313. let x = 0;
  314. let dir = 180;
  315.  
  316. while(x<8){
  317. superbullet5(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),1.5,dir+180,BLUE22,0);
  318. dir+=45;
  319. x++;
  320. }
  321. }
  322.  
  323. task superbullet5(x,y,v,dir,graphic,delay){
  324.  
  325. let obj = Obj_Create(OBJ_SHOT);
  326.  
  327. Obj_SetPosition(obj,x,y);
  328. Obj_SetSpeed(obj,v);
  329. Obj_SetAngle(obj,dir);
  330. ObjShot_SetGraphic(obj,graphic);
  331. ObjShot_SetDelay(obj,delay);
  332. ObjShot_SetBombResist(obj,true);
  333.  
  334. while(!Obj_BeDeleted(obj)){
  335.  
  336. wait(80);
  337. Obj_SetSpeed(obj,1);
  338. Obj_SetAngle(obj,dir+180);
  339. ObjShot_SetGraphic(obj,BLUE22);
  340. loop(6){
  341. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,PURPLE22,0);
  342. dir+=360/12;
  343. }
  344. wait(100);
  345. loop(6){
  346. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,PURPLE22,0);
  347. dir+=360/12;
  348. }
  349. wait(120);
  350. yield;
  351. }
  352. superbullet5(x,y,v,dir,graphic,delay);
  353. }
  354.  
  355. task fire11{
  356. let x = 0;
  357. let dir = 90;
  358.  
  359. while(x<12){
  360. superbullet3(GetEnemyX+50*cos(dir),GetEnemyY+50*sin(dir),0.5,dir,RED22,0);
  361. dir+=60;
  362. x++;
  363. }
  364. }
  365.  
  366. task superbullet3(x,y,v,dir,graphic,delay){
  367.  
  368. let obj = Obj_Create(OBJ_SHOT);
  369.  
  370. Obj_SetPosition(obj,x,y);
  371. Obj_SetSpeed(obj,v);
  372. Obj_SetAngle(obj,dir);
  373. ObjShot_SetGraphic(obj,graphic);
  374. ObjShot_SetDelay(obj,delay);
  375. ObjShot_SetBombResist(obj,true);
  376.  
  377. while(!Obj_BeDeleted(obj)){
  378.  
  379. wait(40);
  380. Obj_SetSpeed(obj,0);
  381. wait(45);
  382. ObjShot_SetGraphic(obj,RED22);
  383. loop(18){
  384. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED22,0);
  385. dir+=360/18;
  386. }
  387. wait(60);
  388. loop(18){
  389. CreateShot01(Obj_GetX(obj),Obj_GetY(obj),0.5,dir,RED22,0);
  390. dir+=360/18;
  391. }
  392. wait(720);
  393. yield;
  394. }
  395. superbullet3(x,y,v,dir,graphic,delay);
  396. }
  397.  
  398. task fire12{
  399. loop{
  400. CreateLaserA(0, GetX, GetY, 1, 1, GREEN01,0);
  401. SetLaserDataA(0, 0, 180, 4, 0, 0, 0);
  402. SetShotKillTime(0, 320);
  403. ascent(i in 0..60){
  404. ascent(j in 0..20){
  405. CreateShotA(1, 0, 0, 100);
  406. SetShotDataA(1, 0, 0, 0, 0, 0.8, 3, GREEN22);
  407. AddShot(i*6, 0, 1, j*60);
  408. }
  409. }
  410. FireShot(0);
  411. wait(840);
  412. yield;
  413. }
  414. }
  415.  
  416. task fire13{
  417. loop{
  418. CreateLaserA(0, GetX, GetY, 1, 1, ORANGE01,0);
  419. SetLaserDataA(0, 0, 180, 6, 0, 0, 0);
  420. SetShotKillTime(0, 320);
  421. ascent(i in 0..30){
  422. ascent(j in 0..60){
  423. CreateShotA(1, 0, 0, 100);
  424. SetShotDataA(1, 0, 0, 0, 0, 0.8, 0.5, ORANGE22);
  425. AddShot(i*3, 0, 1, j*30);
  426. }
  427. }
  428. FireShot(0);
  429. wait(960);
  430. yield;
  431. }
  432. }
  433.  
  434. // wait function
  435. function wait(w){
  436. loop(w){yield;}
  437. }
  438.  
  439.  
  440.  
  441.  
  442. }
  443.  
  444. // wait function
  445. function wait(w){
  446. loop(w){yield;}
  447. }
  448.  
  449.  
  450.  
  451.  
  452. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement