Guest User

Funcs

a guest
May 7th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.84 KB | None | 0 0
  1. let current = GetCurrentScriptDirectory;
  2. function px(){return GetPlayerX;}
  3. function py(){return GetPlayerY;}
  4.  
  5. function stgw(){return GetStgFrameWidth;}
  6. function stgh(){return GetStgFrameHeight;}
  7.  
  8. function centerX(){return GetStgFrameWidth/2;}
  9. function centerY(){return GetStgFrameHeight/2;}
  10.  
  11. task PlayerExplode(path){
  12.     let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  13.     ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  14.     Obj_SetRenderPriority(obj, 0.60);
  15.     ObjPrim_SetTexture(obj, path);
  16.     ObjSprite2D_SetSourceRect(obj, 0, 0, 63, 63);
  17.     ObjSprite2D_SetDestRect(obj, -32, -32, 32, 32);
  18.  
  19.     let alpha = 255;
  20.     let scale = 0;
  21.     loop(30){
  22.         scale += 0.2;
  23.         alpha -= 8;
  24.         ObjRender_SetColor(obj, alpha, alpha, alpha);
  25.         ObjRender_SetPosition(obj, GetPlayerX, GetPlayerY, 0);
  26.         ObjRender_SetScaleXYZ(obj, scale, scale, 1);
  27.         yield;
  28.     }
  29.     Obj_Delete(obj);
  30. }
  31.  
  32. task TMagicCircle {
  33.     let countVertex = 64;
  34.     let listRadius = [];
  35.     loop(countVertex) {
  36.         listRadius = listRadius ~ [0];
  37.     }
  38.  
  39.     let path = current ~ "img/Default_Player_MagicCircle.png";
  40.     let obj = ObjPrim_Create(OBJ_PRIMITIVE_2D);
  41.     ObjPrim_SetPrimitiveType(obj, PRIMITIVE_TRIANGLESTRIP);
  42.     ObjPrim_SetVertexCount(obj, countVertex);
  43.     ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  44.     Obj_SetRenderPriority(obj, 0.60);
  45.     ObjPrim_SetTexture(obj, path);
  46.     ascent(iVert in 0..countVertex / 2) {
  47.         let left = iVert * 128;
  48.         let indexVert = iVert * 2;
  49.         ObjPrim_SetVertexUVT(obj, indexVert + 0, left, 0);
  50.         ObjPrim_SetVertexUVT(obj, indexVert + 1, left, 64);    
  51.     }
  52.  
  53.     let cx = 0;
  54.     let cy = 0;
  55.     let maxRadius = 128;
  56.     let alpha = 0;
  57.     let frame = 0;
  58.     let angleRender = 0;
  59.     let frameInvOld = 0;
  60.  
  61.     while(true) {
  62.         let frameInv = GetPlayerInvincibilityFrame();
  63.  
  64.         if(frameInv <= 0) {
  65.             Obj_SetVisible(obj, false);
  66.             frameInvOld = 0;
  67.         }
  68.         else {
  69.             if(frameInvOld == 0) {
  70.                 ascent(iVert in 0..countVertex) {
  71.                     listRadius[iVert] = 0;
  72.                 }
  73.                 alpha = 0;
  74.                 frame = 0;
  75.             }
  76.             frameInvOld = frameInv;
  77.  
  78.             let px = GetPlayerX();
  79.             let py = GetPlayerY();
  80.  
  81.             alpha += 1 / 120;
  82.             alpha = min(alpha, 1);
  83.             angleRender += 360 / countVertex / 2;
  84.             Obj_SetVisible(obj, true);
  85.  
  86.             frameInv = min(100, frameInv);
  87.             let rRate = frameInv / 100;
  88.  
  89.             ascent(iVert in 0..countVertex / 2) {
  90.                 let indexVert = iVert * 2;
  91.                 let angle = 360 / (countVertex / 2 - 1) * iVert;
  92.  
  93.                 let vx1 = listRadius[indexVert] * cos(angle);
  94.                 let vy1 = listRadius[indexVert] * sin(angle);
  95.                 ObjPrim_SetVertexPosition(obj, indexVert + 0, vx1, vy1, 0);
  96.  
  97.                 let vx2 = listRadius[indexVert+1] * cos(angle);
  98.                 let vy2 = listRadius[indexVert+1] * sin(angle);
  99.                 ObjPrim_SetVertexPosition(obj, indexVert + 1, vx2, vy2, 0);
  100.  
  101.                 if(frame >= 0) {
  102.                     let dr = (maxRadius * rRate - listRadius[indexVert]) / 8;
  103.                     listRadius[indexVert] = listRadius[indexVert] + dr;
  104.                 }
  105.                 if(frame > 10) {
  106.                     let rRateIn = rRate - 0.12;
  107.                     if(rRateIn < 0){rRateIn=0;}
  108.                     let dr= (maxRadius * rRateIn - listRadius[indexVert + 1]) / 16;
  109.                     listRadius[indexVert + 1] = listRadius[indexVert + 1] + dr;
  110.                 }
  111.  
  112.             }
  113.  
  114.             ObjRender_SetColor(obj, 192 * alpha, 192 * alpha, 255 * alpha);
  115.             ObjRender_SetPosition(obj, px, py, 0);
  116.             ObjRender_SetAngleZ(obj, angleRender);
  117.  
  118.             frame++;
  119.         }
  120.  
  121.         yield;
  122.     }
  123. }
  124.  
  125. task GrazePiece{
  126.     let obj = ObjPrim_Create(OBJ_SPRITE_2D);
  127.     ObjPrim_SetTexture(obj, GetCurrentScriptDirectory ~ "img/graze_eff.png");
  128.     ObjSprite2D_SetSourceRect(obj, 0, 0, 32, 32);
  129.     ObjSprite2D_SetDestCenter(obj);
  130.     ObjRender_SetBlendType(obj, BLEND_ADD_RGB);
  131.     ObjRender_SetScaleXYZ(obj, 0.2, 0.2, 0.2);
  132.     ObjRender_SetPosition(obj, GetPlayerX, GetPlayerY, 0);
  133.  
  134.     let s = 0.2;
  135.     let a = rand(0, 360);
  136.     let x = GetPlayerX;
  137.     let y = GetPlayerY;
  138.     while(s > 0){
  139.         ObjRender_SetScaleXYZ(obj, s, s, s);
  140.         ObjRender_SetPosition(obj, x, y, 0);
  141.         s -= 0.01;
  142.         x += 10*cos(a);
  143.         y += 10*sin(a);
  144.         yield;
  145.     }
  146.     Obj_Delete(obj);
  147. }
Add Comment
Please, Sign In to add comment