fredi-68 / luswca

Remember to put full project title here
GNU General Public License v3.0
0 stars 0 forks source link

Skill system rework #31

Closed fredi-68 closed 5 years ago

fredi-68 commented 6 years ago

Current implementation of the skill system doesn't work. We need a tree system that allows for actual execution chains, some of our skills are handled based on assumptions that aren't always accurate in all cases. The only way around this is to set up a composite system for behaviors similar to how we handle RM components. This will also make the implementation a lot cleaner and advanced features will be easier to implement.

fredi-68 commented 5 years ago

I completely rewrote the skill system implementation from scratch. Bound skill handling is still work in progress but first experiments have shown that the issues we were having with the old system are not persistent anymore. The next steps will be implementing all the missing behavior templates and adding proper handling for item bound skills. Lastly, there is still a lot of "dead code" left in the character class. SkillManager instances are still stored on the Character instance due to unique handle IDs for each client but all the logic has been shifted to the skills module / the world server. Can probably safely delete most of the skill related code in the Character class as soon as item skill handling has been ported to the new system.

fredi-68 commented 5 years ago

Item skill handling implemented, also fixed some weirdness related to skill sync messages. There are still some question marks around skill/behavior handles and the way the client deals with them (we need to prevent skills from piling up in memory until the server crashes) but for the most part everything seems to be working so I'll close this for now