PolygonMaker.prototype.near = function(e){ var p1 = this.points[0]; var p2 = [e.offsetX,e.offsetY]; if(!p1){ return false; } return util.distance(p1,p2) < 50; }
data.forEachEntityPair((entityA, entityB) => { if (!entityA.active || !entityB.active) return; if (entityA.type !== 'virus' && entityB.type !== 'virus') return; var dist = util.distance(entityA, entityB); dist -= entityA.mass; dist -= entityB.mass; var largerEntity = entityB; var smallerEntity = entityA; if (entityA.mass > entityB.mass) { largerEntity = entityA; smallerEntity = entityB; } if (largerEntity.type === 'virus') return; if (largerEntity.mass * 0.75 < smallerEntity.mass) return; if (dist >= -smallerEntity.mass) return; for (var i = 0; i < 3; i++) { var entity = Object.assign({}, largerEntity, { id: util.uuid(), x: largerEntity.x, y: largerEntity.y, mass: largerEntity.mass / 4, velocity: { x: 0, y: 0 }, _attributes: {}, // TODO logs: [], // TODO mergeDelay: 1500 // TODO }); data.addEntity(entity); } largerEntity.mass /= 3; smallerEntity.active = false; });