Advertisement
Guest User

Untitled

a guest
Jul 6th, 2015
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.77 KB | None | 0 0
  1. task createEnemy(class,spawnX,spawnY,TRUEorFALSE,moveX,moveY){
  2.  
  3. let enemy = ObjEnemy_Create(OBJ_ENEMY);
  4. ObjEnemy_Regist(enemy);
  5. ObjMove_SetPosition(enemy,spawnX,spawnY);
  6. if(TRUEorFALSE == 1){ObjMove_SetDestAtSpeed(enemy,moveX,moveY,2);}
  7.  
  8. let RenderSheet = GetCurrentScriptDirectory ~ "./img/ThirdSpellAllClasses.png";
  9. ObjPrim_SetTexture(enemy,RenderSheet);
  10.  
  11. // SCOUT
  12. if(class == 1){
  13. ObjSprite2D_SetSourceRect(enemy,0,0,95,109);
  14. ObjSprite2D_SetDestCenter(enemy);
  15. let spinangle = 0;
  16. let scoutX;
  17. let scoutY;
  18. while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
  19. ObjRender_SetAngleZ(enemy,spinangle);
  20. scoutX = ObjMove_GetX(enemy);
  21. scoutY = ObjMove_GetY(enemy);
  22. CreateShotA1(scoutX,scoutY,2,spinangle,1,0);
  23. CreateShotA1(scoutX,scoutY,2,spinangle+90,1,0);
  24. CreateShotA1(scoutX,scoutY,2,spinangle+180,1,0);
  25. CreateShotA1(scoutX,scoutY,2,spinangle+270,1,0);
  26. spinangle = spinangle+32;
  27. wait(3);
  28. yield;
  29. }
  30. }
  31.  
  32. // SOLDIER
  33. else if(class == 2){
  34. ObjSprite2D_SetSourceRect(enemy,93,0,176,108);
  35. ObjSprite2D_SetDestCenter(enemy);
  36. let bazookaX = ObjMove_GetX(enemy)-20;
  37. let fireframe = 30;
  38. while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
  39. if(GetPlayerX <= ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,0,0); bazookaX = ObjMove_GetX(enemy)-20;}
  40. else if(GetPlayerX > ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,180,0); bazookaX = ObjMove_GetX(enemy)+20;}
  41. fireframe++;
  42. if(fireframe == 80){
  43. let missile = CreateShotA2(bazookaX,ObjMove_GetY(enemy)-25,1,0,0.1,3,308,0);
  44. ObjMove_SetAngle(missile,atan2(GetPlayerY-ObjMove_GetY(missile),GetPlayerX-ObjMove_GetX(missile)));
  45. SoldierMissileBurst(missile);
  46. fireframe = 0;
  47. }
  48. yield;
  49. }
  50. }
  51.  
  52. // PYRO
  53. else if(class == 3){
  54. ObjSprite2D_SetSourceRect(enemy,177,0,240,109);
  55. ObjSprite2D_SetDestCenter(enemy);
  56. let fireblasterX = ObjMove_GetX(enemy)-25;
  57. let fireframe = 60;
  58. let fireballspeed = 1;
  59. let fireballangle = 16;
  60. while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
  61. if(GetPlayerX <= ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,0,0); fireblasterX = ObjMove_GetX(enemy)-25;}
  62. else if(GetPlayerX > ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,180,0); fireblasterX = ObjMove_GetX(enemy)+25;}
  63. if(fireframe >= 80 && fireframe < 96){
  64. loop(2){
  65. let fireball = CreateShotA1(fireblasterX,ObjMove_GetY(enemy),1+fireballspeed*sin(2),0,338,0);
  66. ObjMove_SetAngle(fireball,atan2(GetPlayerY-ObjMove_GetY(fireball),GetPlayerX-ObjMove_GetX(fireball))+rand(fireballangle*-1,fireballangle));
  67. ObjRender_SetBlendType(fireball,BLEND_ADD_RGB);
  68. }
  69. fireballspeed++;
  70. fireballangle=fireballangle-1;
  71. if(fireframe == 95){fireframe = 0; fireballspeed = 1; fireballangle = 16;}
  72. }
  73. fireframe++;
  74. yield;
  75. }
  76. }
  77.  
  78. // DEMOMAN
  79. else if(class == 4){
  80. ObjSprite2D_SetSourceRect(enemy,254,0,319,111);
  81. ObjSprite2D_SetDestCenter(enemy);
  82. let grenadelauncherX = ObjMove_GetX(enemy)-20;
  83. let fireframe = 20;
  84. while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
  85. if(GetPlayerX <= ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,0,0); grenadelauncherX = ObjMove_GetX(enemy)-20;}
  86. else if(GetPlayerX > ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,180,0); grenadelauncherX = ObjMove_GetX(enemy)+20}
  87. if(fireframe == 75){
  88. let angle = atan2(GetPlayerY-ObjMove_GetY(enemy)+50,GetPlayerX-grenadelauncherX);
  89. let grenade = CreateShotA1(grenadelauncherX,ObjMove_GetY(enemy)+50,3,atan2(GetPlayerY-ObjMove_GetY(enemy),GetPlayerX-ObjMove_GetX(enemy),307,0);
  90. //ObjMove_SetAngle(grenade,atan2(GetPlayerY-ObjMove_GetY(grenade),GetPlayerX-ObjMove_GetX(grenade)));
  91. //if(grenadelauncherX == ObjMove_GetX(enemy)-20){ObjMove_SetAngularVelocity(grenade,-0.5);}
  92. //else if(grenadelauncherX == ObjMove_GetX(enemy)+20){ObjMove_SetAngularVelocity(grenade,0.5);}
  93. DemoGrenade(grenade);
  94. fireframe=0;
  95. }
  96. fireframe++;
  97. yield;
  98. }
  99. }
  100.  
  101. Obj_Delete(enemy);
  102. }
  103.  
  104. task SoldierMissileBurst(id){
  105.  
  106. wait(60);
  107. if(ObjMove_GetX(id) > GetStgFrameWidth) {Obj_Delete(id);}
  108. let angle = rand(1,360);
  109. if(!Obj_IsDeleted(id)){
  110. ascent(i in 0..30){
  111. CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle,0.01,2,47,0);
  112. CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle+90,0.01,2,47,0);
  113. CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle+180,0.01,2,47,0);
  114. CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle+270,0.01,2,47,0);
  115. }
  116. }
  117. Obj_Delete(id);
  118.  
  119. }
  120.  
  121. task DemoGrenade(id){
  122.  
  123. CheckBounce(id);
  124.  
  125. }
  126.  
  127. task CheckBounce (let objshot) {
  128. let alreadybounced = 0;
  129. while(!Obj_IsDeleted(objshot)) {
  130.  
  131. if(alreadybounced >= 1) {break;}
  132.  
  133. if(ObjMove_GetAngle(objshot) > 85 && ObjMove_GetAngle(objshot) < 95){ObjMove_SetAngularVelocity(objshot,0);}
  134. if(ObjMove_GetX(objshot) > GetStgFrameWidth)
  135. {
  136. ObjMove_SetAngle(objshot, 180-ObjMove_GetAngle(objshot));
  137. ObjMove_SetX(objshot, GetStgFrameWidth*2-ObjMove_GetX(objshot));
  138. }
  139. else if(ObjMove_GetX(objshot) < 0)
  140. {
  141. ObjMove_SetAngle(objshot, 180-ObjMove_GetAngle(objshot));
  142. ObjMove_SetX(objshot, -ObjMove_GetX(objshot));
  143. }
  144. else if(ObjMove_GetY(objshot) < 0)
  145. {
  146. ObjMove_SetAngle(objshot, -ObjMove_GetAngle(objshot));
  147. ObjMove_SetY(objshot, -ObjMove_GetY(objshot));
  148. }
  149. else if(ObjMove_GetY(objshot) > GetStgFrameHeight)
  150. {
  151. ObjMove_SetAngle(objshot, -ObjMove_GetAngle(objshot));
  152. ObjMove_SetY(objshot, GetStgFrameHeight*2-ObjMove_GetY(objshot));
  153. alreadybounced++;
  154. }
  155. yield;
  156. }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement