Advertisement
Guest User

like what the hell

a guest
Apr 18th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.80 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #ScriptVersion[3]
  3. #Title["Reimu (Spell 2.5)"]
  4. #Text["Number 1 Rule of Gensokyo: [r]NEVER steal [r]The Shrine Maiden's [r]donations."]
  5. #Player["./system/player/Marisa by plasmaflame22/Marisa_B.txt"]
  6. #Background["./system/background/back_reimu.dnh"]
  7. #System["./system/system/Awalys_System.txt"]
  8.  
  9. #include"./system/shot/Shot/ZUNShot_Const.txt"
  10. #include"./system/lib/lib_main.dnh"
  11. #include"./system/lib/ReimuAnim.dnh"
  12. #include"./system/lib/shot_lib.dnh"
  13.  
  14. let frame = 0;
  15. let count = 0;
  16. let count2 = 0;
  17. let start = false;
  18.  
  19. let angleInc1 = 0;
  20. let angleInc2 = 0;
  21.  
  22. let pos1 = 0;
  23. let pos2 = 0;
  24. let pos3 = 0;
  25. let pos4 = 0;
  26. let pos5 = 0;
  27. let pos6 = 0;
  28.  
  29. @Event{
  30.     alternative(GetEventType())
  31.     case(EV_REQUEST_LIFE){
  32.         SetScriptResult(6800/4);
  33.     }
  34.     case(EV_REQUEST_TIMER){
  35.         SetScriptResult(4800);
  36.     }
  37.     case(EV_REQUEST_SPELL_SCORE){
  38.         SetScriptResult(240000000);
  39.     }
  40.     case(EV_REQUEST_IS_DURABLE_SPELL){
  41.         SetScriptResult(false);
  42.     }
  43.     case(EV_TIMEOUT){
  44.         SetScriptResult(82);
  45.     }
  46. }
  47.  
  48. @Initialize{
  49.     objBoss = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  50.     ObjEnemy_Regist(objBoss);
  51.     ObjMove_SetDestAtWeight(objBoss, cx, 140, 15,6);
  52.    
  53.     BossRender;
  54.     TFinalizeSpell;
  55.     MagicCircle;
  56.     Orbs;
  57. }
  58.  
  59. @MainLoop{
  60.     let ex = ObjMove_GetX(objBoss);
  61.     let ey = ObjMove_GetY(objBoss);
  62.  
  63.     ObjEnemy_SetIntersectionCircleToShot(objBoss, ex, ey, 32);
  64.     ObjEnemy_SetIntersectionCircleToPlayer(objBoss, ex, ey, 24);
  65.    
  66.     ObjEnemy_SetDamageRate(objBoss,1,1);
  67.  
  68.     Start;
  69.    
  70.     if(start){
  71.     count++;
  72.     count2++;
  73.     angleInc1-=1;
  74.     angleInc2+=2;
  75.     Pattern;
  76.     ObjEnemy_SetDamageRate(objBoss,25,25);
  77.     }
  78.    
  79.     frame++;
  80.    
  81.     yield;
  82. }
  83.  
  84. task Start{
  85.     if(frame == 60){
  86.         Spell("Treasure Sign \"Precious Yin-Yang Orbs\"");
  87.         ObjEnemyBossScene_StartSpell(objScene);
  88.         Attack=true;
  89.         Cutin;
  90.         wait(60);
  91.         nTestCharge(ObjMove_GetX(objBoss),ObjMove_GetY(objBoss),90,255,100,100);
  92.         PlaySE(ChargeSE);
  93.         start=true;
  94.         Attack=false;
  95.     }
  96. }
  97.  
  98. task Pattern{
  99.     if(count == 60){
  100.         if(pos1 == 0){
  101.             wait(90);
  102.             CreateOrbsS(rand_int(1,6), pos1):
  103.             PlaySE(FamiliarSE);
  104.         }
  105.         if(pos2 == 0){
  106.             wait(90);
  107.             CreateOrbsS(rand_int(1,6), pos2):
  108.             PlaySE(FamiliarSE);
  109.         }
  110.         if(pos3 == 0){
  111.             wait(90);
  112.             CreateOrbsS(rand_int(1,6), pos3):
  113.             PlaySE(FamiliarSE);
  114.         }
  115.         if(pos4 == 0){
  116.             wait(90);
  117.             CreateOrbsS(rand_int(1,6), pos4):
  118.             PlaySE(FamiliarSE);
  119.         }
  120.         if(pos5 == 0){
  121.             wait(90);
  122.             CreateOrbsS(rand_int(1,6), pos5):
  123.             PlaySE(FamiliarSE);
  124.         }
  125.         if(pos6 == 0){
  126.             wait(90);
  127.             CreateOrbsS(rand_int(1,6), pos6):
  128.             PlaySE(FamiliarSE);
  129.         }
  130.     }
  131. }
  132.  
  133. task CreateOrbsS(type,pos){
  134.     let posX;
  135.     let posY;
  136.     if(pos == pos1){
  137.         posX = ObjMove_GetX(objBoss)+120*cos(angleInc1);
  138.         posY = ObjMove_GetY(objBoss)+40*sin(angleInc1);
  139.         pos1+=1;
  140.     }
  141.     else if(pos == pos2){
  142.         posX = ObjMove_GetX(objBoss)+120*cos(angleInc1+60);
  143.         posY = ObjMove_GetY(objBoss)+40*sin(angleInc1+60);
  144.         pos2+=1;
  145.     }
  146.     else if(pos == pos3){
  147.         posX = ObjMove_GetX(objBoss)+120*cos(angleInc1+120);
  148.         posY = ObjMove_GetY(objBoss)+40*sin(angleInc1+120);
  149.         pos3+=1;
  150.     }
  151.     else if(pos == pos4){
  152.         posX = ObjMove_GetX(objBoss)+120*cos(angleInc1+180);
  153.         posY = ObjMove_GetY(objBoss)+40*sin(angleInc1+180);
  154.         pos4+=1;
  155.     }
  156.     else if(pos == pos5){
  157.         posX = ObjMove_GetX(objBoss)+120*cos(angleInc1+240);
  158.         posY = ObjMove_GetY(objBoss)+40*sin(angleInc1+240);
  159.         pos5+=1;
  160.     }
  161.     else if(pos == pos6){
  162.         posX = ObjMove_GetX(objBoss)+120*cos(angleInc1+300);
  163.         posY = ObjMove_GetY(objBoss)+40*sin(angleInc1+300);
  164.         pos6+=1;
  165.     }
  166.    
  167.     if(type == 1){
  168.         let yinyang = CreateYinYangS1(posX, posY, 1750, 1, 1, 255);
  169.         BulletCommandsA1(yinyang);
  170.         MoveCommandsA1(yinyang);
  171.         DeleteCommands(yinyang, pos);
  172.     }
  173.     else if(type == 2){
  174.         let yinyang = CreateYinYangS1(posX, posY, 1750, 1, 2, 255);
  175.         BulletCommandsA2(yinyang);
  176.         MoveCommandsA2(yinyang);
  177.         DeleteCommands(yinyang, pos);
  178.     }
  179.     else if(type == 3){
  180.         let yinyang = CreateYinYangS1(posX, posY, 1750, 1, 3, 255);
  181.         BulletCommandsC1(yinyang);
  182.         MoveCommandsA3(yinyang);
  183.     }
  184.     else if(type == 4){
  185.         let yinyang = CreateYinYangS1(posX, posY, 1750, 1, 4, 255);
  186.         BulletCommandsC2(yinyang);
  187.         MoveCommandsA4(yinyang);
  188.         DeleteCommands(yinyang, pos);
  189.     }
  190.     else if(type == 5){
  191.         let yinyang = CreateYinYangS1(posX, posY, 1750, 1, 5, 255);
  192.         BulletCommandsD1(yinyang);
  193.         MoveCommandsA5(yinyang);
  194.         DeleteCommands(yinyang, pos);
  195.     }
  196.     else if(type == 6){
  197.         let yinyang = CreateYinYangS1(posX, posY, 1750, 1, 6, 255);
  198.         BulletCommandsD2(yinyang);
  199.         MoveCommandsA6(yinyang);
  200.         DeleteCommands(yinyang, pos);
  201.     }
  202. }
  203.  
  204. task CreateOrbsM(type, angle, accel){
  205.     if(type == 1){
  206.         let yinyang = CreateYinYangM2(ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 0.01, GetAngleToPlayer(objBoss), 0.03, 3.5, 2000, 2.5, 1);
  207.         BulletCommandsB1(yinyang);
  208.     }
  209. }
  210.  
  211. task MoveCommandsA1(obj){
  212.     while(!Obj_IsDeleted(obj)){
  213.         ObjMove_SetPosition(obj,ObjMove_GetX(objBoss)+120*cos(angleInc1),ObjMove_GetY(objBoss)+40*sin(angleInc1));
  214.         yield;
  215.     }
  216. }
  217. task MoveCommandsA2(obj){
  218.     while(!Obj_IsDeleted(obj)){
  219.         ObjMove_SetPosition(obj,ObjMove_GetX(objBoss)+120*cos(angleInc2+60),ObjMove_GetY(objBoss)+40*sin(angleInc2+60));
  220.         yield;
  221.     }
  222. }
  223. task MoveCommandsA3(obj){
  224.     while(!Obj_IsDeleted(obj)){
  225.         ObjMove_SetPosition(obj,ObjMove_GetX(objBoss)+120*cos(angleInc1+120),ObjMove_GetY(objBoss)+40*sin(angleInc1+120));
  226.         yield;
  227.     }
  228. }
  229. task MoveCommandsA4(obj){
  230.     while(!Obj_IsDeleted(obj)){
  231.         ObjMove_SetPosition(obj,ObjMove_GetX(objBoss)+120*cos(angleInc2+180),ObjMove_GetY(objBoss)+40*sin(angleInc2+180));
  232.         yield;
  233.     }
  234. }
  235. task MoveCommandsA5(obj){
  236.     while(!Obj_IsDeleted(obj)){
  237.         ObjMove_SetPosition(obj,ObjMove_GetX(objBoss)+120*cos(angleInc1+240),ObjMove_GetY(objBoss)+40*sin(angleInc1+240));
  238.         yield;
  239.     }
  240. }
  241. task MoveCommandsA6(obj){
  242.     while(!Obj_IsDeleted(obj)){
  243.         ObjMove_SetPosition(obj,ObjMove_GetX(objBoss)+120*cos(angleInc2+300),ObjMove_GetY(objBoss)+40*sin(angleInc2+300));
  244.         yield;
  245.     }
  246. }
  247.  
  248. task BulletCommandsA1(obj){
  249.     wait(90);
  250.     while(!Obj_IsDeleted(obj)){
  251.         loop(16){
  252.             let shot1 = CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc1),ObjMove_GetY(obj)+12*sin(angleInc1),3,angleInc1,A_AMULET_RED,10);
  253.             let shot2 = CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc1),ObjMove_GetY(obj)+12*sin(angleInc1),3,angleInc1,A_AMULET_RED,10);
  254.             ObjMove_SetAngularVelocity(shot1, 0.5);
  255.             ObjMove_SetAngularVelocity(shot2, -0.5);
  256.             PlaySE(ShotSE1);
  257.             angleInc1 += 360/16;
  258.         }
  259.         wait(120);
  260.     }
  261. }
  262. task BulletCommandsA2(obj){
  263.     wait(90);
  264.     while(!Obj_IsDeleted(obj)){
  265.         loop(16){
  266.             let shot1 = CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc2),ObjMove_GetY(obj)+12*sin(angleInc2),3,angleInc2,A_AMULET_GRAY,10);
  267.             let shot2 = CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc2),ObjMove_GetY(obj)+12*sin(angleInc2),3,angleInc2,A_AMULET_GRAY,10);
  268.             ObjMove_SetAngularVelocity(shot1, -0.5);
  269.             ObjMove_SetAngularVelocity(shot2, 0.5);
  270.             PlaySE(ShotSE1);
  271.             angleInc2 += 360/16;
  272.         }
  273.         wait(120);
  274.     }
  275. }
  276. task BulletCommandsC1(obj){
  277.     wait(90);
  278.     while(!Obj_IsDeleted(obj)){
  279.         loop(8){
  280.             CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc1),ObjMove_GetY(obj)+12*sin(angleInc1),3,angleInc1,BL_SMALL_RED,10);
  281.             PlaySE(ShotSE1);
  282.             angleInc1 += 360/8;
  283.         }
  284.         wait(60);
  285.     }
  286. }
  287. task BulletCommandsC2(obj){
  288.     wait(90);
  289.     while(!Obj_IsDeleted(obj)){
  290.         loop(8){
  291.             CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc2),ObjMove_GetY(obj)+12*sin(angleInc2),3,angleInc2,BL_SMALL_GRAY,10);
  292.             PlaySE(ShotSE1);
  293.             angleInc2 += 360/8;
  294.         }
  295.         wait(60);
  296.     }
  297. }
  298. task BulletCommandsD1(obj){
  299.     wait(90);
  300.     while(!Obj_IsDeleted(obj)){
  301.         let angleT = GetAngleToPlayer(obj);
  302.         CreateShotA1(ObjMove_GetX(obj)+12*cos(angleT),ObjMove_GetY(obj)+12*sin(angleT),3,angleT,LARGE_RED,10);
  303.         CreateShotA1(ObjMove_GetX(obj)+12*cos(angleT),ObjMove_GetY(obj)+12*sin(angleT),3,angleT+10,LARGE_RED,10);
  304.         CreateShotA1(ObjMove_GetX(obj)+12*cos(angleT),ObjMove_GetY(obj)+12*sin(angleT),3,angleT-10,LARGE_RED,10);
  305.         PlaySE(ShotSE1);
  306.         wait(60);
  307.     }
  308. }
  309. task BulletCommandsD2(obj){
  310.     wait(90);
  311.     while(!Obj_IsDeleted(obj)){
  312.         let angleT = GetAngleToPlayer(obj);
  313.         CreateShotA1(ObjMove_GetX(obj)+12*cos(angleInc2),ObjMove_GetY(obj)+12*sin(angleInc2),3,angleInc2,LARGE_GRAY,10);
  314.         CreateShotA1(ObjMove_GetX(obj)+12*cos(angleT),ObjMove_GetY(obj)+12*sin(angleT),3,angleT+10,LARGE_GRAY,10);
  315.         CreateShotA1(ObjMove_GetX(obj)+12*cos(angleT),ObjMove_GetY(obj)+12*sin(angleT),3,angleT-10,LARGE_GRAY,10);
  316.         PlaySE(ShotSE1);
  317.         wait(60);
  318.     }
  319. }
  320. task BulletCommandsB1(obj){
  321.     while(!Obj_IsDeleted(obj)){
  322.         let angleT = rand(0,360);
  323.         loop(12){
  324.             CreateShotA2(ObjMove_GetX(obj)+30*cos(angleT),ObjMove_GetY(obj)+30*sin(angleT),0.5,angleT,0.03,3,A_LARGE_RED,15);
  325.             angleT += 360/12;
  326.         }
  327.         if(Obj_IsDeleted(obj)){
  328.             orbcount=orbcount-1;
  329.         }
  330.         wait(20);
  331.     }
  332. }
  333.  
  334. task DeleteCommands(obj, type){
  335.     loop{
  336.         if(Obj_IsDeleted(obj)){
  337.             type-=1;
  338.         }
  339.         yield;
  340.     }
  341. }
  342.  
  343. task Movement{
  344.     ObjMove_SetDestAtWeight(objBoss, rand(80, 320), rand(120, 150), 15,6);
  345. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement