Skip to content
Snippets Groups Projects
  • Zoey76's avatar
    BETA: Effect rework: · c5c99945
    Zoey76 authored
    	* Complete rework of !CharEffectList.
    		* Mimicking "List" operations, remove(..), add(..), isEmpty()...
    		* Thread-safe.
    			* Using reentrant locks for read/write operations.
    		* Removed cache-array, wasn't working.
    		* Removed useless methods.
    		* Removed queue, wrong implementation was leading to wrong updates in effect lists.
    		* Now effects from skills are managed in batches, less calls to methods, avoiding overhead from synchronization and keeping abnormal type groups safe.
    		* Support for blocked buff slots, no more hacks!
    			* Implemented proper effect.
    		* No more dependence on Javolution.
    		* !JavaDocs!
    	* Abnormal type, level and time are global to the skill and not specific to each effect.
    		* Keeping support to customize each effect duration time, needs testing.
    	* Added abnormal type enum, no more strings.
    		* Removed overhead from string comparison.
    	* !EffectTemplate rework:
    		* No more public fields, we use mutators and accessors to work with them!
    		* Func list to List instead of array.
    			* Avoid CPU overhead, System.arraycopy(..).
    		* Removed unused transform parameters.
    		* !JavaDocs!
    	* L2Skill rework:
    		* No more dependence on Javolution.
    		* Func and Effect lists to List instead of array.
    		* Removed some useless effect type related method from skills.
    		* Removed custom restriction for stolen effect with current duration less than 5 seconds.
    		* If NPE appear they have to be properly fixed, no more hacks!
    		* Updated toString() method.
    		* !JavaDocs!
    	* L2Effect rework:
    		* Effects do not store static data from template!
    		* Removed unused transform parameters.
    		* Removed "passive effect" related methods, effect is passive if skill is passive.
    		* Removed "buff"/"debuff" related method from effects, skills are buffs or debuffs not effects.
    		* Updated toString() method.
    		* Removed effectCanBeStolen() method, now canBeStolen() is overridden in effect implementations in Datapack.
    		* !JavaDocs!
    	* L2Item minor rework:
    		* Func and Effect lists to List instead of array.
    			* Avoid CPU overhead, System.arraycopy(..).
    		* No more dependence on Javolution.
    		* Now _questEvents is initialized only if it's used, not for all items!
    	* L2Weapon fixes:
    		* Fixed bug in getSkillEffects(L2Character, L2Character, L2Skill) returning always empty array of effects!
    		* Func and Effect lists to List instead of array.
    			* Avoid CPU overhead, System.arraycopy(..).
    		* No more dependence on Javolution.
    	* Reworked "get func" methods to avoid toArray(..) calls.
    	* Proper use of maps, no more iteration over keys and retrieving the value using get method.
    	* Externalized formula to calculate current effect duration to Formulas class.
    	* Static fields are upper case.
    	* Adding button to reload effects, '''must be follow by skill reload and probably player restart''' to ensure there is no memory-leftovers.
    	* Fixing skill Frintezza's Songs(5008) abnormal types.
    	* Fixing minor bug with High Five GM skills.
    	* Added name to effect list from admin panel, fixed other minor glitches.
    	* Removed old and classing GM menu.
    	* Updated logs and comments.
    
    Reviewed by: Adry_85, MELERIX
    
    Testing video: http://youtu.be/7qadv7QQhy4
    c5c99945