Browse Source

Remove removeEffectByName and use IDs to remove effects

tags/v0.10.6^2
kckckc 2 years ago
parent
commit
d86e05a72f
6 changed files with 24 additions and 32 deletions
  1. +13
    -23
      src/server/components/effects.js
  2. +3
    -3
      src/server/config/spells/spellAura.js
  3. +1
    -1
      src/server/config/spells/spellCharge.js
  4. +1
    -1
      src/server/config/spells/spellFireblast.js
  5. +1
    -1
      src/server/config/spells/spellReflectDamage.js
  6. +5
    -3
      src/server/config/spells/spellStealth.js

+ 13
- 23
src/server/components/effects.js View File

@@ -110,14 +110,14 @@ module.exports = {
let effect = effects[i];
if (!forceDestroy) {
if (effect.persist) {
this.syncRemove(effect.id, effect.type);
this.syncRemove(effect.id);
continue;
}
}

this.destroyEffect(effect);

this.syncRemove(effect.id, effect.type);
this.syncRemove(effect.id);
effects.splice(i, 1);
eLen--;
i--;
@@ -225,8 +225,13 @@ module.exports = {
});
},

syncRemove: function (id, type, noMsg) {
if ((noMsg) || (!type))
syncRemove: function (id) {
let effect = this.effects.find(e => e.id === id);

if (!effect)
return;

if (effect.silent)
return;

this.obj.instance.syncer.queue('onRemoveBuff', {
@@ -243,9 +248,9 @@ module.exports = {
},

removeEffect: function (id, noMsg) {
if (noMsg) {
if (noMsg)
console.error('removeEffect: noMsg is deprecated!');
}
if (typeof id !== 'number') {
console.error('removeEffect: id should be a number');
id = id.id;
@@ -254,25 +259,10 @@ module.exports = {
let effect = this.effects.find(e => e.id === id);
this.destroyEffect(effect);

this.syncRemove(effect.id, effect.type);
this.syncRemove(effect.id);
this.effects.spliceWhere(e => e.id === id);
},
removeEffectByName: function (effectName, noMsg) {
let effects = this.effects;
let eLen = effects.length;
for (let i = 0; i < eLen; i++) {
let effect = effects[i];
if (effect.type === effectName) {
this.destroyEffect(effect);

this.syncRemove(effect.id, effect.type, noMsg || effects.noMsg);
effects.splice(i, 1);
return effect;
}
}
},

getEffectByType: function (effectType) {
const effect = this.effects.find(e => e.type === effectType);
@@ -329,7 +319,7 @@ module.exports = {

this.destroyEffect(e);

this.syncRemove(e.id, e.type, e.noMsg);
this.syncRemove(e.id);
}
}



+ 3
- 3
src/server/config/spells/spellAura.js View File

@@ -69,7 +69,7 @@ module.exports = {
if (distance > range) {
if (effect) {
delete effects[m];
obj.effects.removeEffect(effect);
obj.effects.removeEffect(effect.id);
}

return;
@@ -96,7 +96,7 @@ module.exports = {
delete effects[serverId];
const obj = objects.find(f => ~~f.serverId === ~~serverId);
if (obj)
obj.effects.removeEffect(effect);
obj.effects.removeEffect(effect.id);
}
});
},
@@ -117,7 +117,7 @@ module.exports = {
return;
}

obj.effects.removeEffect(effect);
obj.effects.removeEffect(effect.id);
delete effects[m];
}, this);
}


+ 1
- 1
src/server/config/spells/spellCharge.js View File

@@ -115,7 +115,7 @@ module.exports = {

obj.instance.physics.addObject(obj, obj.x, obj.y);

obj.effects.removeEffect(selfEffect, true);
obj.effects.removeEffect(selfEffect.id);

this.obj.aggro.move();



+ 1
- 1
src/server/config/spells/spellFireblast.js View File

@@ -147,7 +147,7 @@ module.exports = {
},

endEffect: function (target, targetPos, targetEffect) {
target.effects.removeEffect(targetEffect, true);
target.effects.removeEffect(targetEffect.id);

target.instance.physics.removeObject(target, target.x, target.y);



+ 1
- 1
src/server/config/spells/spellReflectDamage.js View File

@@ -36,6 +36,6 @@ module.exports = {

let obj = this.obj;

obj.effects.removeEffect(selfEffect);
obj.effects.removeEffect(selfEffect.id);
}
};

+ 5
- 3
src/server/config/spells/spellStealth.js View File

@@ -8,6 +8,8 @@ module.exports = {

targetGround: true,

effect: null,

cast: function (action) {
//Clear Aggro
this.obj.aggro.die();
@@ -15,10 +17,10 @@ module.exports = {
let ttl = this.duration * consts.tickTime;
let endCallback = this.queueCallback(this.endEffect.bind(this), ttl - 50);

this.obj.effects.addEffect({
this.effect = this.obj.effects.addEffect({
type: 'stealth',
endCallback: endCallback
});
});

return true;
},
@@ -28,7 +30,7 @@ module.exports = {

let obj = this.obj;

obj.effects.removeEffectByName('stealth');
obj.effects.removeEffect(this.effect.id);
this.obj.aggro.move();
}
};

Loading…
Cancel
Save