Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @filename Cows.js
- * @author kolton
- * @desc clear the Moo Moo Farm without killing the Cow King
- */
- function CowsLeech() {
- this.buildCowRooms = function () {
- var i, j, room, kingPreset, badRooms, badRooms2,
- finalRooms = [],
- indexes = [];
- kingPreset = getPresetUnit(me.area, 1, 773);
- badRooms = getRoom(kingPreset.roomx * 5 + kingPreset.x, kingPreset.roomy * 5 + kingPreset.y).getNearby();
- for (i = 0; i < badRooms.length; i += 1) {
- badRooms2 = badRooms[i].getNearby();
- for (j = 0; j < badRooms2.length; j += 1) {
- if (indexes.indexOf(badRooms2[j].x.toString() + badRooms2[j].y.toString()) === -1) {
- indexes.push(badRooms2[j].x.toString() + badRooms2[j].y.toString());
- }
- }
- }
- room = getRoom();
- do {
- if (indexes.indexOf(room.x.toString() + room.y.toString()) === -1) {
- finalRooms.push([room.x * 5 + room.xsize / 2, room.y * 5 + room.ysize / 2]);
- }
- } while (room.getNext());
- return finalRooms;
- };
- this.clearCowLevel = function () {
- var room, result, myRoom,
- rooms = this.buildCowRooms();
- function RoomSort(a, b) {
- return getDistance(myRoom[0], myRoom[1], a[0], a[1]) - getDistance(myRoom[0], myRoom[1], b[0], b[1]);
- }
- while (rooms.length > 0) {
- // get the first room + initialize myRoom var
- if (!myRoom) {
- room = getRoom(me.x, me.y);
- }
- if (room) {
- if (room instanceof Array) { // use previous room to calculate distance
- myRoom = [room[0], room[1]];
- } else { // create a new room to calculate distance (first room, done only once)
- myRoom = [room.x * 5 + room.xsize / 2, room.y * 5 + room.ysize / 2];
- }
- }
- rooms.sort(RoomSort);
- room = rooms.shift();
- result = Pather.getNearestWalkable(room[0], room[1], 10, 2);
- if (result) {
- Pather.moveTo(result[0], result[1], 3);
- if (!Attack.clear(30)) {
- return false;
- }
- }
- }
- Pather.usePortal(39);
- Precast.doPrecast(false);
- this.clearCowLevel();
- return true;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement