Advertisement
Guest User

Untitled

a guest
Jul 17th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Game.prototype.explodeBomb = function(bomb, data) {
  2.         if (arguments.length === 1) {
  3.                 data = {
  4.                         x: bomb.x,
  5.                         y: bomb.y,
  6.                         bodies: [],
  7.                         fires: []
  8.                 };
  9.         }
  10.         var w = bomb.size * bomb.width,
  11.         h = bomb.size * bomb.height,
  12.         self = this;
  13.         this.removeBody(bomb);
  14.         var checkHit = function(minX, minY, maxX, maxY, firevar) {
  15.                 for (var x = bomb.x + minX; x <= bomb.x + maxX; x += bomb.width) {
  16.                         for (var y = bomb.y + minY; y <= bomb.y + maxY; y += bomb.height) {
  17.                                 if (x >= 0 && y >= 0 && x < self.world.width && y < self.world.height) {
  18.                                         var b = self.world.getBodies(x, y, bomb.width, bomb.height);
  19.                                         for (var i = 0; i < b.length; i++) {
  20.                                                 var body = b[i];
  21.                                                 if (body !== bomb && body.intersects(x, y, bomb.width, bomb.height)) {
  22.                                                         if (!_.contains(data.bodies, body)) {
  23.                                                                 data.bodies.push(body);
  24.                                                         }
  25.                                                         if (body.armor >= bomb.power) {
  26.                                                                 return;
  27.                                                         } else {
  28.                                                                 self.removeBody(body);
  29.                                 if (!data.fires[x]) {
  30.                                     data.fires[x] = [];
  31.                                 }
  32.                                 if (!data.fires[x][y]) {
  33.                                     data.fires[x][y] = firevar;
  34.                                 }
  35.                                                         }
  36.                                                         if (body instanceof Bomb) {
  37.                                                                 self.explodeBomb(body, data);
  38.                                                         }
  39.                                                 }
  40.                                         };
  41.                                 }
  42.                         }
  43.                 }
  44.         };
  45.  
  46.         checkHit( - w, 0, - bomb.width, 0, 'l');
  47.         checkHit( + bomb.width, 0, + w, 0, 'r');
  48.         checkHit(0, - h, 0, - bomb.height, 'u');
  49.         checkHit(0, + bomb.height, 0, + h, 'd');
  50.  
  51.         return data;
  52. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement