Browse Source

bug #1759: Fixed light patches, lightshafts in hidden areas and fixed an issue with mount particles vanishing when leaving areas

tags/v0.9.0^2
Shaun 3 years ago
parent
commit
5573e309fa
4 changed files with 27 additions and 31 deletions
  1. +2
    -0
      src/client/js/components/light.js
  2. +2
    -0
      src/client/js/components/lightPatch.js
  3. +4
    -6
      src/client/js/objects/objBase.js
  4. +19
    -25
      src/client/js/objects/objects.js

+ 2
- 0
src/client/js/components/light.js View File

@@ -76,6 +76,8 @@ define([
});
}
}

this.setVisible(this.obj.isVisible);
},

update: function () {


+ 2
- 0
src/client/js/components/lightPatch.js View File

@@ -79,6 +79,8 @@ define([
ray.blendMode = PIXI.BLEND_MODES.ADD;
}
}

this.setVisible(this.obj.isVisible);
},

update: function () {


+ 4
- 6
src/client/js/objects/objBase.js View File

@@ -142,12 +142,10 @@ define([
this.stats.hpSpriteInner.visible = false;
}

if (!visible && this) {
this.components.forEach(c => {
if (c.setVisible)
c.setVisible(visible);
});
}
this.components.forEach(c => {
if (c.setVisible)
c.setVisible(visible);
});
},

destroy: function () {


+ 19
- 25
src/client/js/objects/objects.js View File

@@ -50,7 +50,7 @@ define([
getClosest: function (x, y, maxDistance, reverse, fromMob) {
let objects = this.objects;

let list = objects.filter(function (o) {
let list = objects.filter(o => {
if ((!o.stats) || (o.nonSelectable) || (o === window.player) || (!o.sprite.visible))
return false;

@@ -65,7 +65,7 @@ define([
if (list.length === 0)
return null;

list.sort(function (a, b) {
list.sort((a, b) => {
let aDistance = Math.max(Math.abs(x - a.x), Math.abs(y - a.y));
let bDistance = Math.max(Math.abs(x - b.x), Math.abs(y - b.y));

@@ -77,9 +77,7 @@ define([
if (!fromMob)
return list[0];

let fromIndex = list.findIndex(function (l) {
return (l.id === fromMob.id);
});
let fromIndex = list.findIndex(l => l.id === fromMob.id);

if (reverse)
fromIndex = (fromIndex === 0 ? list.length : fromIndex) - 1;
@@ -151,23 +149,21 @@ define([
//We need to set visibility before components kick in as they sometimes need access to isVisible
obj.updateVisibility();

components.forEach(function (c) {
components.forEach(c => {
//Map ids to objects
let keys = Object.keys(c).filter(function (k) {
return ((k.indexOf('id') === 0) && (k.length > 2));
let keys = Object.keys(c).filter(k => {
return (k.indexOf('id') === 0 && k.length > 2);
});
keys.forEach(function (k) {
keys.forEach(k => {
let value = c[k];
let newKey = k.substr(2, k.length).toLowerCase();

c[newKey] = this.objects.find(function (o) {
return (o.id === value);
});
c[newKey] = this.objects.find(o => o.id === value);
delete c[k];
}, this);
});

obj.addComponent(c.type, c);
}, this);
});

if (obj.self) {
events.emit('onGetPlayer', obj);
@@ -189,28 +185,26 @@ define([
updateObject: function (obj, template) {
let components = template.components || [];

components.forEach(function (c) {
components.forEach(c => {
//Map ids to objects
let keys = Object.keys(c).filter(function (k) {
return ((k.indexOf('id') === 0) && (k.length > 2));
let keys = Object.keys(c).filter(k => {
return (k.indexOf('id') === 0 && k.length > 2);
});
keys.forEach(function (k) {
keys.forEach(k => {
let value = c[k];
let newKey = k.substr(2, k.length).toLowerCase();

c[newKey] = this.objects.find(function (o) {
return (o.id === value);
});
c[newKey] = this.objects.find(o => o.id === value);
delete c[k];
}, this);
});

obj.addComponent(c.type, c);
}, this);
});

delete template.components;

if (template.removeComponents) {
template.removeComponents.forEach(function (r) {
template.removeComponents.forEach(r => {
obj.removeComponent(r);
});
delete template.removeComponents;
@@ -292,7 +286,7 @@ define([
for (let i = 0; i < oLen; i++) {
let o = objects[i];

let onPos = tiles.some(function (t) {
let onPos = tiles.some(t => {
return (!(t.x !== o.x || t.y !== o.y));
});
if (!onPos)


Loading…
Cancel
Save