Advertisement
Trickysticks

Untitled

Apr 12th, 2015
262
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.40 KB | None | 0 0
  1. #TouhouDanmakufu
  2. #ScriptVersion[3]
  3. #Title["MageS1_H"]
  4. #Text["Bullets"]
  5. let white = GetCurrentScriptDirectory~"sprites/white.png";
  6.  
  7. #include"./lib/SHOT_REPLACE/shot_replace.dnh"
  8. #include"./Mageinclude.txt"
  9. let color2 = 1;
  10. let color = 0;
  11. let objEnemy;
  12. let duration = 0;
  13. let stopstuff = false;
  14. let angle = 0;
  15. let angle2 = 0;
  16. let one = 1;
  17. let type = 0;
  18. let animframe = 0;
  19. let frame = 0;
  20. let objlasers = [];
  21. let GetSpeedX = 0;
  22. let variable = 0;
  23. let thunder = GetCurrentScriptDirectory~"sfx/thunder.wav";
  24. let n = 0;
  25. @Event{
  26. alternative(GetEventType())
  27. case(EV_REQUEST_LIFE){
  28. SetScriptResult(1000);
  29. }
  30. case(EV_REQUEST_TIMER){
  31. SetScriptResult(999);
  32. }
  33. case(EV_REQUEST_SPELL_SCORE){
  34. SetScriptResult(10000000);
  35. }
  36. case(EV_GAIN_SPELL)
  37. {
  38. AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
  39. }
  40. }
  41.  
  42. @Initialize{
  43. //Resource Loading
  44. shotinit;
  45. LoadSound(shot);
  46. LoadSound(shot2);
  47. LoadSound(shot3);
  48. LoadSound(timeslow);
  49. LoadSound(shot4);
  50. LoadSound(slash);
  51. LoadSound(thunder);
  52. LoadSound(charge2);
  53. LoadSound(ping);
  54. LoadSound(counterspell);
  55. LoadSound(firecast);
  56. LoadSound(fireball);
  57. LoadSound(cardcall);
  58. objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  59. ObjEnemy_Regist(objEnemy);
  60. Invuln(360, 25, 25);
  61. //BottomEnemyMarker(objEnemy, objEnemy);
  62. let Kogasa = GetCurrentScriptDirectory~"sprites/kogasa.png";
  63. ObjPrim_SetTexture(objEnemy, Kogasa);
  64. ObjSprite2D_SetSourceRect(objEnemy, 0, 0, 128, 128);
  65. ObjAnim_AddFrameA2(objEnemy, ANIM_IDLE, 0, 0, 128, 128, 10, 1);
  66. ascent(x in 0..2){ObjAnim_AddFrameA2(objEnemy, ANIM_MOVE_LEFT, 256, 128*x, 256+128, 128*x+128, 10, 1);}
  67. ascent(x in 2..4){ObjAnim_AddFrameA2(objEnemy, ANIM_MOVE_RIGHT, 256, 128*x, 256+128, 128*x+128, 10, 1);}
  68. CheckForFlip;
  69. ObjAnim_AddFrameA2(objEnemy, ANIM_MOVEEND_RIGHT, 256, 128*2, 128*3, 128*2+128, 10, 1);
  70. ObjAnim_AddFrameA2(objEnemy, ANIM_MOVEEND_RIGHT, 0, 0, 128, 128, 10, 1);
  71. ObjAnim_AddFrameA2(objEnemy, ANIM_MOVEEND_LEFT, 256, 128*2, 256+128, 128*2+128, 10, 1);
  72.  
  73. ascent(x in 0..4){ObjAnim_AddFrameA2(objEnemy, ANIM_ATTACK, 128*4, 128*x, 128*5, 128*x+128, 10, 1);}
  74. ascent(x in 0..4){ObjAnim_AddFrameA2(objEnemy, ANIM_ATTACKEND, 128*5, 128*x, 128*6, 128*x+128, 10, 1);}
  75.  
  76. ObjAnim_SetSpeedA1(objEnemy, ANIM_IDLE, 9);
  77. ObjAnim_SetSpeedA1(objEnemy, ANIM_MOVE_LEFT, 6);
  78. ObjAnim_SetSpeedA1(objEnemy, ANIM_MOVE_RIGHT, 6);
  79. ObjAnim_SetSpeedA1(objEnemy, ANIM_ATTACK, 10);
  80. ObjAnim_SetLoopPointA1(objEnemy, ANIM_MOVE_RIGHT, 1);
  81. ObjAnim_SetLoopPointA1(objEnemy, ANIM_MOVE_LEFT, 1);
  82. ObjAnim_SetLoopPointA1(objEnemy, ANIM_ATTACK, 3);
  83. ObjAnim_StartAnimationA2(objEnemy, 0, 0);
  84. ObjSprite2D_SetDestCenter(objEnemy);
  85.  
  86.  
  87.  
  88. LoadTexture(white);
  89.  
  90. delayedstart;
  91. SetShotAutoDeleteClip(30, 100, 30, 20);
  92.  
  93.  
  94. }
  95.  
  96.  
  97.  
  98. task delayedstart{
  99. ObjMove_SetDestAtFrame(objEnemy, GetCenterX, 120, 60);
  100. wait(60);
  101.  
  102. ObjEnemyBossScene_StartSpell(objScene);
  103. ObjEnemyBossScene_SetSpellTimer(objScene, 60*47);
  104.  
  105. PlaySE(cardcall);
  106. ObjCutin_SetSpellcardS4("Hot Streak "Pyroblast"", kogasacutin, "AYA", 255, 0, 0);
  107. ObjCutin_LaunchS3(AYA, kogasacutin, "Hard");
  108. wait(60);
  109. attack1;
  110. }
  111.  
  112. task CheckForFlip{
  113. yield;
  114. loop{
  115. if(CheckDirectionAL1(objEnemy, "left")){
  116. SetCommonData("flipsprite", true);
  117. }
  118. else if(CheckDirectionAL1(objEnemy, "right")){
  119. SetCommonData("flipsprite", false);
  120. }
  121. if(GetCommonData("flipsprite", false)==true && CheckDirectionAL1(objEnemy, "none")){ ObjRender_SetScaleX(objEnemy, -1)}
  122. else{ ObjRender_SetScaleX(objEnemy, 1); }
  123.  
  124.  
  125. yield;
  126. }
  127. }
  128.  
  129.  
  130. @MainLoop{
  131.  
  132.  
  133. SetCommonData("kogasax", ObjMove_GetX(objEnemy));
  134. SetCommonData("kogasay", ObjMove_GetY(objEnemy));
  135. if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) <=0 && stopstuff==false){stopstuff=true;}
  136.  
  137.  
  138. if(stopstuff==true && popped==false){
  139. DestroyBoss;
  140. }
  141.  
  142. GetEnemyX = ObjMove_GetX(objEnemy);
  143. GetEnemyY = ObjMove_GetY(objEnemy);
  144. ObjEnemy_SetIntersectionCircleToShot(objEnemy, GetEnemyX, GetEnemyY, 23);//当たり判定(自機弾用)登録
  145. ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, GetEnemyX, GetEnemyY, 17);//当たり判定(体当たり用)登録
  146.  
  147. frame++;
  148. yield;
  149. GetSpeedX = ObjMove_GetSpeed(objEnemy)*cos(ObjMove_GetAngle(objEnemy));
  150. }
  151.  
  152. function castbar(seconds, spell, sound, size, width){
  153.  
  154.  
  155. PlaySE(sound);
  156. let alpha = 255;
  157. let angle = 0;
  158. let numcasts = 0;
  159. let green = 0;
  160. let string = "Casting:" ~ spell;
  161. let variable = 180;
  162. let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  163. Obj_SetRenderPriority(obj, 0.9);
  164. ObjPrim_SetTexture(obj, GetCurrentScriptDirectory~"tricky_system/img/Default_System.png");
  165. ObjSprite2D_SetSourceRect(obj, 1, 1, 127, 7);
  166. ObjSprite2D_SetDestRect(obj, GetStgFrameWidth+60, GetStgFrameHeight/2+65, GetStgFrameWidth+70, GetStgFrameHeight/2+65);
  167. ObjRender_SetColor(obj, 255, 165, 0);
  168. ObjRender_SetAlpha(obj, 255);
  169. ObjMove_SetX(obj, GetStgFrameWidth/2);
  170. ObjMove_SetY(obj, GetStgFrameHeight/2);
  171. ObjRender_SetScaleXYZ(obj, 1, 1, 1);
  172.  
  173.  
  174.  
  175.  
  176. let objText = ObjText_Create();
  177. ObjText_SetFontType(objText, "Corbel");
  178. ObjText_SetText(objText, spell);
  179. ObjText_SetFontSize(objText, size);
  180. ObjText_SetFontBold(objText, true);
  181. ObjText_SetHorizontalAlignment(objText, ALIGNMENT_CENTER);
  182. ObjText_SetMaxWidth(objText, width);
  183. ObjText_SetFontColorTop(objText, 224, 255, 255);
  184. ObjText_SetFontColorBottom(objText, 128, 128, 255);
  185. ObjText_SetFontBorderType(objText, BORDER_FULL);
  186. ObjText_SetFontBorderColor(objText,0, 0, 0);
  187. ObjText_SetFontBorderWidth(objText, 1);
  188.  
  189. Obj_SetRenderPriority(objText, 0.9);
  190. ObjRender_SetX(objText, GetStgFrameWidth/2+225);
  191. ObjRender_SetY(objText, GetStgFrameHeight/2+25);
  192.  
  193. loop(seconds){
  194. variable-=180/seconds;
  195. ObjSprite2D_SetDestRect(obj, GetStgFrameWidth+60, GetStgFrameHeight/2+(180+65), GetStgFrameWidth+70, (GetStgFrameHeight/2+65)+variable);
  196. if(GetVirtualKeyState(VK_USER1)==KEY_PUSH && GetCommonData("interruptavail", false)==true){
  197. ObjRender_SetColor(obj, 0, 255, 0);
  198. PlaySE(counterspell);
  199. StopSound(sound);
  200. wait2(15);
  201. loop(30){
  202. alpha-=255/30;
  203. ObjRender_SetAlpha(objText, alpha);
  204. ObjRender_SetAlpha(obj, alpha);
  205. yield;
  206. }
  207. return true;
  208. Obj_Delete(obj); break; }
  209. wait2(1);
  210. }
  211. StopSound(sound);
  212. ObjRender_SetColor(obj, 255, 0, 0);
  213. if(sound == firecast){ PlaySE(fireball); }
  214. if(spell == "Fireball"){ loop(10){ ascent(i in 0..9){ CreateDNHShotA1(GetEnemyX, GetEnemyY, 0.5+(i/3.15), angletoplayer(objEnemy)+angle+rand((-(9-i))*2, (9-i)*2), SP01, 10); } angle+=360/10; }}
  215. if(spell == "Pyroblast"){ loop(10){ ascent(i in 0..25){ CreateDNHShotA1(GetEnemyX, GetEnemyY, 0.25+(i/8.3333333), angletoplayer(objEnemy)+rand(-i-10, i+10)+angle, SP01, 10); } angle+=360/10; }}
  216. wait2(15);
  217. loop(30){
  218. alpha-=255/30;
  219. ObjRender_SetAlpha(objText, alpha);
  220. ObjRender_SetAlpha(obj, alpha);
  221. wait2(1);
  222. }
  223. return false;
  224. Obj_Delete(obj);
  225. function wait2(w){ loop(w){ if (popped==true){ StopSound(sound); Obj_Delete(objText); Obj_Delete(obj); } yield; } }
  226. }
  227.  
  228.  
  229.  
  230. task attack1{
  231. wait(120);
  232. let numcasts = 0;
  233. let one = 1;
  234. let angle2 = 0;
  235. let color = 0;
  236. let angle3 = 0;
  237. loop{
  238. numcasts++;
  239. if(castbar(15, "Fireball", firecast, 20, 60) == true){
  240. //wait(15);
  241. }
  242. else{
  243.  
  244. //wait(15);
  245. }
  246. if(numcasts>=6){
  247. PlaySE(charge2);
  248. TCharge01(objEnemy, 3, 45, 255, 0, 0);
  249. wait(60);
  250. castbar(120, "Pyroblast", firecast, 18, 80);
  251. numcasts = 0;
  252. wait(60);
  253. }
  254.  
  255.  
  256. if(popped==true){break;}
  257.  
  258.  
  259. }
  260. }
  261.  
  262.  
  263.  
  264.  
  265. task DestroyBoss{
  266. SetCommonData("petals", false);
  267. popped=true;
  268. StopSlow(TARGET_ALL);
  269. loop(10){ yield; }
  270. Obj_Delete(objEnemy);
  271. loop(45){ yield; }
  272. CloseScript(GetOwnScriptID());
  273. return;
  274. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement