ISkill, Skill, and Skills

Alright so all of my skills are going to inherit ISkill and Skill.

ISkill as you can guess is an interface there is only one virtual function as of right now. I may extend it later but executing a skill is the only thing we really care about most of the time. So in that sense it is a functor.

Skill on the other hand contains useful functionality for skills to use such as applying damage. I move all of those functions from the combat manager and added a few extras.

Part of the reason for moving this functionality to this base class is to prevent circular dependencies. The other being that this allows for better encapsulation.

There is currently no support for passive skills and the only skill on the server is lunge. Also keep in mind that the server code hasn't been tested in the slightest. I have a feeling I'm going to regret not building and testing more of the protocol related code first. However it is hard to test anything other than basic login without having the state machine setup. Also I would have to do more work on the client just to have a framework for connection to the server.

I really wish I had another programmer about now. Then the two of us could be working in parallel on the client and server. This would make things go allot smoother and probably faster assuming good communication.

Ok, now for the skills themselves. The built-in skills are all in a folder called skills. They will be hard coded in that sense. Each one included using Skills.hpp which may also contain the enumeration for all of the unknown skills. At least that is what I'm thinking.

In theory I don't need to know what each skill is from in code but I may want that just for my own sanity. Also it maybe helpful to identify how many skills are in place and what the upper bound is for the skills vector.

Vector you say, yes I used a vector to store the skills. The reason for this is mostly because I plan to allow for scripted skills later which maybe loaded from a database. I have no support for such a feature now because scripted skills will be slower and have external dependencies such as the database or worse a file.

I don't even have the state machine finished so I have yet to bother with database stuff. I will probably use postgreSql because of it's permissive license. It fits my project goals. I don't care if people make closed source stuff from my work I just want games that don't suck. Also a job would be nice. :-)


Popular posts from this blog

VK9 - Milestone13 Completed

VK9 - Milestone16 Completed

VK9 - Milestone23 Completed