Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. /**
  2. * @filename Cows.js
  3. * @author kolton
  4. * @desc clear the Moo Moo Farm without killing the Cow King
  5. */
  6.  
  7. function CowsLeech() {
  8.  
  9. this.buildCowRooms = function () {
  10. var i, j, room, kingPreset, badRooms, badRooms2,
  11. finalRooms = [],
  12. indexes = [];
  13.  
  14. kingPreset = getPresetUnit(me.area, 1, 773);
  15. badRooms = getRoom(kingPreset.roomx * 5 + kingPreset.x, kingPreset.roomy * 5 + kingPreset.y).getNearby();
  16.  
  17. for (i = 0; i < badRooms.length; i += 1) {
  18. badRooms2 = badRooms[i].getNearby();
  19.  
  20. for (j = 0; j < badRooms2.length; j += 1) {
  21. if (indexes.indexOf(badRooms2[j].x.toString() + badRooms2[j].y.toString()) === -1) {
  22. indexes.push(badRooms2[j].x.toString() + badRooms2[j].y.toString());
  23. }
  24. }
  25. }
  26.  
  27. room = getRoom();
  28.  
  29. do {
  30. if (indexes.indexOf(room.x.toString() + room.y.toString()) === -1) {
  31. finalRooms.push([room.x * 5 + room.xsize / 2, room.y * 5 + room.ysize / 2]);
  32. }
  33. } while (room.getNext());
  34.  
  35. return finalRooms;
  36. };
  37.  
  38. this.clearCowLevel = function () {
  39. var room, result, myRoom,
  40. rooms = this.buildCowRooms();
  41.  
  42. function RoomSort(a, b) {
  43. return getDistance(myRoom[0], myRoom[1], a[0], a[1]) - getDistance(myRoom[0], myRoom[1], b[0], b[1]);
  44. }
  45.  
  46. while (rooms.length > 0) {
  47. // get the first room + initialize myRoom var
  48. if (!myRoom) {
  49. room = getRoom(me.x, me.y);
  50. }
  51.  
  52. if (room) {
  53. if (room instanceof Array) { // use previous room to calculate distance
  54. myRoom = [room[0], room[1]];
  55. } else { // create a new room to calculate distance (first room, done only once)
  56. myRoom = [room.x * 5 + room.xsize / 2, room.y * 5 + room.ysize / 2];
  57. }
  58. }
  59.  
  60. rooms.sort(RoomSort);
  61. room = rooms.shift();
  62.  
  63. result = Pather.getNearestWalkable(room[0], room[1], 10, 2);
  64.  
  65. if (result) {
  66. Pather.moveTo(result[0], result[1], 3);
  67.  
  68. if (!Attack.clear(30)) {
  69. return false;
  70. }
  71. }
  72. }
  73.  
  74. Pather.usePortal(39);
  75. Precast.doPrecast(false);
  76. this.clearCowLevel();
  77.  
  78. return true;
  79. };
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement