Guest User

Untitled

a guest
Jun 21st, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #ScriptVersion[3]
  3. #Title["beta0.9!"]
  4. #Text["Code by Sparen[r]My First Bullet"]
  5. #BGM["Native Faith.mp3"]
  6. #include "script/default_system/Shot/ZUNShot_Const.txt"
  7.  
  8. let objBoss;
  9. let objScene = GetEnemyBossSceneObjectID();
  10. let count = -120;
  11.  
  12. @Event{
  13. alternative(GetEventType())
  14. case(EV_REQUEST_LIFE){
  15. SetScriptResult(500);
  16. }
  17. case(EV_REQUEST_TIMER){
  18. SetScriptResult(60);
  19. }
  20. case(EV_REQUEST_SPELL_SCORE){
  21. SetScriptResult(1000000);
  22. }
  23. }
  24. @Initialize{
  25. objBoss = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  26. ObjEnemy_Regist(objBoss);
  27. ObjMove_SetDestAtFrame(objBoss, GetCenterX, GetCenterY-60, 60);
  28. ObjEnemyBossScene_StartSpell(objScene);
  29.  
  30. TDrawLoop;
  31. TFinalize;
  32. }
  33.  
  34. @MainLoop{
  35. ObjEnemy_SetIntersectionCircleToShot(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 32);
  36. ObjEnemy_SetIntersectionCircleToPlayer(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 24);
  37. if(count % 30 == 0){movement;}
  38.  
  39. if(count % 30 == 0 && count >= 0){
  40. taskA;
  41. }
  42.  
  43. count++;
  44. yield;
  45. }
  46.  
  47. task taskA{
  48. if(ObjEnemy_GetInfo(objBoss, INFO_LIFE) <= 0){return;}
  49. let angleT = 0;
  50. loop(18){
  51. CreateShotA1(GetEnemyX(objBoss), GetEnemyY(objBoss), 2, angleT, 9, 10);
  52. angleT += 360/18;
  53. }
  54.  
  55. task movement{
  56. while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){
  57. ObjMove_SetDestAtFrame(objBoss, rand(GetCenterX()+90, GetCenterX()-90), rand(GetCenterY() -60, GetCenterY() -120), 60);
  58. wait(240);
  59. }
  60. }
  61.  
  62. task TDrawLoop{
  63. let suwako = GetCurrentScriptDirectory() ~ "texture/suwako.png";
  64. ObjPrim_SetTexture(objBoss, suwako);
  65. ObjSprite2D_SetSourceRect(objBoss, 0, 0, 256, 256);
  66. ObjSprite2D_SetDestCenter(objBoss);
  67. }
  68.  
  69. task TFinalize {
  70. while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){yield;}
  71. if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)
  72. +ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
  73. AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
  74. }
  75. Obj_Delete(objBoss);
  76. DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
  77. SetAutoDeleteObject(true);
  78. CloseScript(GetOwnScriptID());
  79. return;
  80.  
  81. }
  82. function GetCenterX(){
  83. return GetStgFrameWidth() / 2;
  84. }
  85. function GetCenterY(){
  86. return GetStgFrameHeight() / 2;
  87. }
  88.  
  89. function wait(n){
  90. loop(n){yield;}
  91. }
Add Comment
Please, Sign In to add comment