This is just a quick update to say that all abilities or effects you guys challenged me to do have been added in. These were Charger, HE Shells, Berserk, Move, MiniWalker, Pitfall, and Wormhole đ
It’s all good. This token system is working so far and those should be some of the hardest abilities out the way.
Well.
This is awkward. Out of things to say already.
There’s actually a much bigger post coming very soon to really bring an end to the project now my classes are beginning (they start in 11 hours). But if I’m honest I think I will still add more abilities even during my studies. The reason being that this new system is really easy to work with, meaning I can add new abilities fairly quickly, and it is very low-stress even when debugging as the code is really clean.
Yeah, stress is a factor. Even back in my days down in sunny Surrey there were times when I had some spare time, albeit limited, but I didn’t want to be spending it doing what can be a very stressful hobby. This time however it doesn’t seem like it will be so bad.
The only real weakness in this tokens system that has caused me a bit of a headache is when you have a very unique ability. This system is a huge step up from the previous one as it can perform many general actions and I simply feed it a token from an ability and it processes it perfectly. But it can’t do some of the more specialist actions. An example of this is Molotov. Molotov creates a token with the damage, burn, and duration as part of it, but the damage part only needs to be processed on the first round of the token, and the token system has no way to do this – it processes all tokens fully every round. So what I did was after the first round I took the token apart, modified the damage to 0, and then rebuilt the token and put it back into the system. It works, but eh, special cases are tricky.
The other special case I have come across so far is the Pitfall ability that grants immunity to damage, but it doesn’t give this immunity immediately, instead it appears next round. So yeah, this one I fixed by using this switch; at the end of the round if the Pitfall token is there the switch flips to on and grants immunity, but if the token has expired (i.e. the ability is no longer active) then the switch flips to off and the immunity vanishes.
I know this system is going to get increasingly complicated as more abilities are added, but I’m hoping it is good enough to suit all the different abilities that exist now and that could ever exist in the future.
The previous system was a load of crap basically and had no general structure so treated every ability as a completely unique case. Each ability took a long time to code in and then it had to be tested against every other ability to make sure it didn’t break. That’s why the progress slowed down exponentially as more abilities were added. This lack of general structure is also why the database needed several thousand columns so that each ability could be individually processed in all cases. Although I was proud of the architecture at the time, these days I am deeply embarrassed that I created something so bad.
But I guess that’s how you learn. Remember that I am new, or at least I was new, to this and it was only by making these serious mistakes that I was able to learn the correct way.
I’m just hoping this isn’t another one of those mistakes that I have yet to realise >.>
That’s it now. The last update post until summer. Expect a funky post sometime next week about my experiences and thoughts with CCSO, but as far as beta goes, it’s goodbye. Hibernating in this frozen place (literally <.< Scotland is cold) until that one day of sunshine Scotland gets every year. Although I do hope to work on it a bit during the next two semesters đ
Goodbye! ^.^ And thanks for all the testing, destruction, and comments everyone đ
EDIT: Also, we’re going to pass 1500 blog views with this post! What a way to end the summer đ





































