Advertisement
Guest User

h

a guest
Jun 9th, 2016
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.07 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #ScriptVersion[3]
  3. #Title["spellcard4"]
  4. #Text["Attaque8"]
  5. #include"script/default_system/Default_ShotConst.txt"
  6. #include"script/default_system/Default_Effect.txt"
  7. #include"script/Team_9/fonc_predef/timeout.txt"
  8. #include"script/Team_9/fonc_predef/draw_circle_boss.txt"
  9.  
  10. let objEnemy;
  11. let frame=-120;
  12.  
  13. let shot1="script/default_system/se/shot1.wav";
  14. let exp_item="script/default_system/se/exp_item.wav";
  15. let laser4="script/default_system/se/laser4.wav";
  16. let charge="script/default_system/se/charge.wav";
  17.  
  18. let vit_circle=0;
  19. let deploi_circle=1;
  20.  
  21. // pattern spell 2
  22.  
  23. let angle_balaie;
  24. let angle_sauv;
  25. let compte_balaie=0;
  26. let varV=5;
  27. let varVB=2.1;
  28. let delaie=25;
  29. let feu_lib=0;
  30. let objScene = GetEnemyBossSceneObjectID();
  31.  
  32. @Event  {
  33.     alternative(GetEventType())
  34.         case(EV_REQUEST_LIFE){
  35.             SetScriptResult(8000);
  36.         }
  37.     case(EV_REQUEST_TIMER) {
  38.         SetScriptResult(90);
  39.     }
  40.     case(EV_REQUEST_SPELL_SCORE){
  41.         SetScriptResult(1000000);
  42.     }
  43. }
  44.  
  45. @Initialize {
  46.     objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  47.     ObjEnemy_Regist(objEnemy);
  48.    
  49.     //demarre la spellcard
  50.     ObjEnemyBossScene_StartSpell(objScene);
  51.     ObjEnemyBossScene_SetSpellTimer(objEnemy,90);
  52.    
  53.     Tafficher_boss;
  54.    
  55.     //Ce qui suit ajoute le spellcard bonus au score.
  56.     if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)+ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
  57.         AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
  58.     }
  59.     LoadSound(shot1);
  60. }
  61.  
  62. @MainLoop {
  63.     if(frame==-60){
  64.         ObjMove_SetDestAtWeight(objEnemy, GetStgFrameWidth()/2, 80, 15,25); // FAIRE DEPLACEMENT
  65.     }
  66.     let angleToPlayer = atan2(GetPlayerY() - ObjMove_GetY(objEnemy), GetPlayerX() - ObjMove_GetX(objEnemy));
  67.     if(frame>=0 && feu_lib>=40){
  68.         ObjEnemy_SetIntersectionCircleToShot(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 32);
  69.         ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 24);
  70.     }
  71.     if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>=500){
  72.         if((frame>=30 && frame%2==0 && compte_balaie%12==0) || frame%2==0 && (compte_balaie%12>=1 && compte_balaie%12<=5 )){
  73.             PlaySE(shot1);
  74.         }
  75.         if(frame==30){
  76.             if(compte_balaie%12==0){
  77.                 angle_balaie=angleToPlayer-rand(73,77);
  78.                 ascent(j in 0..14){
  79.                     loop(60){
  80.                         //////////////////////////////
  81.                         //ASPIRE(papillon,varV,varVB,angle_balaie,j,delaie);
  82.                         Bullet(ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy),varV-varVB , angle_balaie+ 2*modc(j,2),delaie);
  83.                         //////////////////////////////
  84.                         varV=varV-0.03;
  85.                         delaie=delaie+5;
  86.                         angle_balaie=angle_balaie+6;
  87.                     }
  88.                     varV=5;
  89.                     delaie=25;
  90.                     varVB=varVB+0.25;
  91.                 }
  92.                 varVB=2.1;
  93.             }
  94.         }
  95.     }
  96.     // En dessous , tire random
  97.     if(compte_balaie%12<=9 && compte_balaie%12>=8 && frame%3==0){
  98.         if(feu_lib>=40){
  99.             CreateShotA2(ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy),0.5, angleToPlayer+rand(-32,32),0.1,4,277,5);
  100.         }
  101.         feu_lib++;
  102.     }
  103.    
  104.     if(frame==60){
  105.         compte_balaie++;
  106.         frame=0;
  107.     }
  108.     vit_circle++;
  109.     draw_circle_boss(3,objEnemy,vit_circle/2,2.5/((cos(vit_circle)+2) +sin(vit_circle)+2),(vit_circle/2-30)^1.5);
  110.     Timeout;
  111.     frame++;
  112.     TEnd;
  113. }
  114.    
  115. ////////////////////////////////////////////////////////////////////////////////////////////////////
  116. ////////////////////////////////////////////////////////////////////////////////////////////////////
  117. ////////////////////////////////////////////////////////////////////////////////////////////////////
  118. ////////////////////////////////////////////////////////////////////////////////////////////////////
  119.  
  120.  
  121. task Tafficher_boss{
  122.     let imgboss = "script/default_system/img/boss.png";
  123.     ObjPrim_SetTexture(objEnemy, imgboss);
  124.     ObjSprite2D_SetSourceRect(objEnemy, 80, 0, 113, 64);
  125.     ObjSprite2D_SetDestCenter(objEnemy);
  126.     ObjMove_SetDestAtFrame(objEnemy, GetStgFrameWidth()/2, 140, 1);
  127. }
  128.  
  129.  
  130. task TEnd{
  131.     if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) <= 0){
  132.         Obj_Delete(objEnemy);
  133.         Obj_Delete(circle);
  134.         //DeleteShotAll(TYPE_ALL, TYPE_ITEM);      
  135.         //CloseScript(GetOwnScriptID());
  136.         return;
  137.     }
  138. }
  139.  
  140. /*
  141. task ASPIRE(papillon,varV,varVB,angle_balaie,j,delaie){
  142.     let savX=-5*sin(angle_balaie+ 2*modc(j,2));
  143.     let savY=-5*cos(angle_balaie+ 2*modc(j,2));
  144.     while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>1000){
  145.         savX=savX+(varV-varVB)*sin(angle_balaie+ 2*modc(j,2));
  146.         savY=savY+(varV-varVB)*cos(angle_balaie+ 2*modc(j,2));
  147.         yield;
  148.     }
  149.     CreateShotA1(ObjMove_GetX(objEnemy)+20*savX,ObjMove_GetY(objEnemy)+20*savY,-2,ObjMove_GetAngle(papillon),105,5);
  150. }
  151. */
  152.  
  153. task Bullet(x, y, v, angle,delaie) {
  154.     let papillon=CreateShotA1(x,y,v,angle,107,delaie);
  155.     ObjShot_SetSpellResist(papillon, true);
  156.     ObjShot_SetAutoDelete(papillon,false);
  157.     change(papillon);
  158. }
  159.  
  160. task change(papillon){
  161.     while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>=500){
  162.     yield;
  163.     }
  164.     ObjMove_SetSpeed(papillon, 3);
  165.     ObjMove_SetAngle(papillon, ObjMove_GetAngle(papillon) + 180);
  166.     //while ((absolute(GetStgFrameWidth()/2-ObjMove_GetX(papillon))>=60) && (absolute(80-ObjMove_GetX(papillon))>=60)){
  167.     //  yield;
  168.     //}
  169.     //ObjShot_SetAutoDelete(papillon,true);
  170.     //Obj_Delete(papillon);
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement