From 0d288e9d5d8b0375a666093eb645f8a5927e1f9a Mon Sep 17 00:00:00 2001 From: Alison <10372732+alisonrag@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:45:49 -0300 Subject: [PATCH] fix: aura is now displayed correctly --- src/Renderer/Entity/EntityAura.js | 19 +++++++++++++++---- src/Renderer/Entity/EntityRender.js | 2 ++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Renderer/Entity/EntityAura.js b/src/Renderer/Entity/EntityAura.js index 40b52c71..2353081d 100644 --- a/src/Renderer/Entity/EntityAura.js +++ b/src/Renderer/Entity/EntityAura.js @@ -32,6 +32,7 @@ function(EffectConst, MapPreferences) { this.isLoaded = false; // to avoid duplicate aura effects this.entity = entity; // reference to attached entity + this.lastAuraState = 0; // save last aura state to track changes on aura/aura2 command } /** @@ -43,8 +44,11 @@ function(EffectConst, MapPreferences) if( MapPreferences.aura > 0 && this.entity.clevel >= 99) { // check if entity is visible if(this.entity.isVisible()) { - // aura is already loaded + // check if aura state has changed + if(this.lastAuraState !== MapPreferences.aura && this.isLoaded) + this.remove( effectManager ); if(!this.isLoaded) { + // aura is already loaded // select effects based on /aura preference var effects = MapPreferences.aura < 2 ? simpleEffects : normalEffects; // add aura effects @@ -54,14 +58,21 @@ function(EffectConst, MapPreferences) position: this.entity.position, effectId: effects[effectIndex] } ); - } - // set flag to avoid duplicate aura effects - this.isLoaded = true; + } + // set flag to avoid duplicate aura effects + this.isLoaded = true; + // save current aura state + this.lastAuraState = MapPreferences.aura; } } else { // remove aura if entity is invisible this.remove( effectManager ); } + } else if (this.isLoaded) { + // remove aura if entity does not qualify + this.remove( effectManager ); + // save current aura state + this.lastAuraState = MapPreferences.aura; } }; diff --git a/src/Renderer/Entity/EntityRender.js b/src/Renderer/Entity/EntityRender.js index 0ba5367b..fa28454f 100644 --- a/src/Renderer/Entity/EntityRender.js +++ b/src/Renderer/Entity/EntityRender.js @@ -25,6 +25,7 @@ define( function( require ) var Altitude = require('Renderer/Map/Altitude'); var Session = require('Engine/SessionStorage'); var JobId = require('DB/Jobs/JobConst'); + var getModule = require; var _last_body_dir = 0; @@ -324,6 +325,7 @@ define( function( require ) if (this.shield > 0 && !behind) { renderElement( this, this.files.shield, 'shield', _position, true ); } + this.aura.load(getModule('Renderer/EffectManager')); } }; }();