Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. //Magic Stream Link
  2. if(PressWeapon(86) || PressWeapon(22)){
  3. G[G_STREAMANGLE] = 0;
  4. G[G_SHOTCOUNTER]= 0;
  5. if(G[G_STREAM_GRACEPERIOD] == 0){
  6. G[G_STREAMDURATION] = 0;
  7. G[G_STREAM_MPCOST] = 0;
  8. }
  9. if(Link->Dir==DIR_UP)
  10. G[G_STREAMANGLE] = -90;
  11. else if(Link->Dir==DIR_DOWN)
  12. G[G_STREAMANGLE] = 90;
  13. else if(Link->Dir==DIR_LEFT)
  14. G[G_STREAMANGLE] = 180;
  15. }
  16.  
  17. if(G[G_STREAMDURATION] >= 60){
  18. G[G_STREAM_MPCOST] = Floor(G[G_STREAMDURATION]/60 * G[G_MAGIC_COST_MULTIPLIER]);
  19. G[G_STREAM_MPCOST] = Clamp(G[G_STREAM_MPCOST], 0, 4)*G[G_MAGIC_COST_MULTIPLIER];
  20. }
  21. if((InputWeapon(86) || InputWeapon(22))&& (G[G_STREAMDELAY] <= 0 || G[G_STREAM_GRACEPERIOD] >0) &&Link->MP>=G[G_STREAM_MPCOST]){
  22. G[G_STREAM_GRACEPERIOD] = 10;
  23. G[G_STREAM_ANGLEDIR] = 0;
  24. if(Link->Dir==DIR_UP)
  25. G[G_STREAM_ANGLEDIR] = -90;
  26. else if(Link->Dir==DIR_DOWN)
  27. G[G_STREAM_ANGLEDIR] = 90;
  28. else if(Link->Dir==DIR_LEFT)
  29. G[G_STREAM_ANGLEDIR] = 180;
  30. G[G_SHOTCOUNTER] = (G[G_SHOTCOUNTER]+1)%360;
  31. G[G_STREAMANGLE] = TurnAngle(G[G_STREAMANGLE], G[G_STREAM_ANGLEDIR], 2.5);
  32. if(G[G_STREAMDURATION] % 30 == 0){
  33. if(G[G_STREAM_MPCOST] == 0)
  34. Game->PlaySound(91);
  35. else if(G[G_STREAM_MPCOST] == 1 * G[G_MAGIC_COST_MULTIPLIER])
  36. Game->PlaySound(92);
  37. else if(G[G_STREAM_MPCOST] == 2 * G[G_MAGIC_COST_MULTIPLIER])
  38. Game->PlaySound(93);
  39. else if(G[G_STREAM_MPCOST] == 3 * G[G_MAGIC_COST_MULTIPLIER])
  40. Game->PlaySound(94);
  41. else if(G[G_STREAM_MPCOST] == 4 * G[G_MAGIC_COST_MULTIPLIER])
  42. Game->PlaySound(95);
  43. }
  44. if(G[G_SHOTCOUNTER]%8 == 0)
  45. Link->MP -= G[G_STREAM_MPCOST];
  46. if(G[G_SHOTCOUNTER]%4==0){
  47. lweapon shot = CreateLWeaponAt(LW_MAGIC, G[G_FIRING_X], G[G_FIRING_Y]);
  48. shot->Angular = true;
  49. shot->Angle = DegtoRad(G[G_STREAMANGLE]);
  50. shot->Dir = AngleDir4(G[G_STREAMANGLE]);
  51. shot->Step = 400;
  52. G[G_TIME_SINCE_LAST_SPELL] = 0;
  53. shot->Damage = 2*G[G_WEAPON_MULTIPLIER] + G[G_STREAM_MPCOST]*G[G_WEAPON_MULTIPLIER]/G[G_MAGIC_COST_MULTIPLIER]/2;
  54. shot->Damage = Clamp(shot->Damage, 2*G[G_WEAPON_MULTIPLIER], 4*G[G_WEAPON_MULTIPLIER]);
  55. if(Link->Item[FLECT_RING])
  56. shot->Damage = 100 + G[G_STREAM_MPCOST]*G[G_WEAPON_MULTIPLIER]/G[G_MAGIC_COST_MULTIPLIER]/2;
  57. if(Link->Item[186] || Link->Item[187])
  58. shot->UseSprite(200);
  59. else
  60. shot->UseSprite(175);
  61. shot->Misc[CLW_TIMER] = 13;
  62. if(Link->Item[22])
  63. shot->Misc[CLW_TIMER] = 21;
  64. if(Link->Item[ZELDA_RING])
  65. shot->Misc[CLW_TIMER] = 0;
  66. SetLWeaponHitbox(shot, 4, 4, 8, 8);
  67. }
  68. G[G_STREAMDURATION]++;
  69. G[G_STREAMDELAY] = -1;
  70. }
  71. else if(G[G_STREAM_GRACEPERIOD] >0){
  72. if(G[G_STREAM_GRACEPERIOD] == 1)
  73. G[G_STREAMDELAY] = -1;
  74. G[G_STREAM_GRACEPERIOD]--;
  75. }
  76. else if(G[G_STREAMDELAY] == -1){
  77. //G[G_STREAMDELAY] = 40;
  78. G[G_STREAMDELAY] = 1;
  79. }
  80. else if(G[G_STREAMDELAY] >0 && !LargeMapSubscreen && G[G_SUBSCREENOPEN] == I_FALSE){
  81. G[G_STREAMDELAY]--;
  82. if(G[G_STREAMDELAY] == 1)
  83. Game->PlaySound(90);
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement