Wussup peoples! As I said last time, school has restarted for me, so I have been very busy. In fact, as I type this I am in the midst of studying for an intermediate accounting 2 test I will be taking tomorrow. With that being said however, I have still made time to get TONS of stuff done on the engine.
As I also said last time, my next goal was re-inputting all of the basic control actions for Alucard, and completing the controls to implement the attacks, and sub weapons I had created objects for.
Here is the list of what I completed in the last month:
Redid, simplified, and improved my controller, movement and collision scripts. They work MUCH better now.
Basic actions have been re-input: this includes idle, walking, sitting, jumping, double jumping, high jumping, backstepping, landing on the ceiling, dark metamorphosis, crouching, dive kicking, wing smash, & hard landings. This includes all of the little nuances & animations for each action such as when Alucard changes from jumping straight up, to moving forward in it, the different animations for stopping suddenly, or stopping on slopes/near edges, versus flat surfaces, etc. Basic movement speed has been almost doubled, and jumps are now much less “floaty” feeling, meaning while you jump the same height, you will start to fall downward sooner ONCE you reach the peak of your jump.
The new switch sub weapon controls, as well as the new switch weapon in hand1 or hand2 controls have been implemented.
I have coded in something new that was inspired by Serio’s Castlevania game: now holding up while standing still will gradually cause your MP to restore faster and FASTER while you hold it. With the much lower max MP I have implemented, this will allow a strategic player with the opportunity to restore MP faster between enemy attacks, thus allowing you to use MP based attacks more often.
All basic weapon attack actions have been coded in: this includes swords, spears, knives, knuckles, great swords, and clubs. Just like in the original game landing while using a mid air attack will cause it to cancel as you hit the ground. THE EXCEPTIONS BEING great swords and spears. Many air attacks have also been tweaked speed wise so using them in mid air is slightly slower. This was done because in most metroidvanias it is actually beneficial to generally use air attacks, and rarely use standing ones. Alucard’s sword and club weapons were ESPECIALLY overly fast in mid air in SOTN, compared to everything else and their grounded/crouching versions. This helps make ground ones much more useful now. Overall attack speeds for all weapons have been increased as well, BTW.
All sub weapon actions have been coded in for all of their various levels: this includes shurikens, summon spirit, hellfire, boomerang, the pentagram (there is now a 3rd version of it based on Shaft’s pentagram too in ROB), and the stopwatch (the wolf’s howl and bat fire will be re-input when form changes are re-inputted as well, but those are both VERY fast and already done). Sub weapon attacks all have an animation now, and if one is used in mid air, the attack animation will continue when you land so NO SPAMMING them. Also while you can switch between sub weapons with a button press, you cannot have TWO DIFFERENT types of sub weapons on screen at once, so again: NO SPAMMING can go on.
All basic critical arts have been done: this means the blue uppercut for knuckles, holbein dagger for knives, valmanway for swords, rune sword for great swords, javelin for spears, and armor bash for clubs. All have been tweaked and majorly improved, and have their own ground and air animations just like subs, and work the same way when landing from an aerial one. The long range ones (javelin toss and rune sword) also have a delay between uses so they CANNOT be abused.
A sort of attack cancel system is in place: normal attacks & subs can be cancelled into critical arts, backstepping, high jumping, mist form, crashes, dark metamorphosis, soul steal, or wing smashing. Critical arts can be cancelled by all of the same EXCEPT another critical art. Backstepping can be cancelled by a normal or critical attack, high jump, or sub weapon, BUT only once until the moves finish; so if you cancel from attack to backstep, or backstep to attack even, this prevents scrubs from spamming and ABUSING it to move even faster across screen, or attack TONS of times in a split second over and over.
After high jumping you can now hold on to the ceiling for a short time longer or let go instantly if you choose; the animation has also been changed to NOT look ridiculous like before.
One of the four available secondary critical arts is done: the Shotel’s throwing special. This leaves the Laevatin’s firestorm, the teleport slash with the Alucard sword, and the triple stab with the Alucard spear.
I THINK I got everything there! I managed to not only improve my old code, neatness, and ease of following wise (95% of Alucard’s code is now in his object instead of scattered into scripts ALL OVER; the hitbox object only really has collision and basic speed info), but I also cut out about 1000 lines of code too! I even improved it in a way that guarantees less bugs will ever pop up, and when they do I will be able to find them MUCH quicker.
Next up I have to finish the last 3 of the secondary critical arts, do shields (VERY easy and simple), then create the new soul steal, and implement the controls for crash objects I coded in. Then re-inputting bat form is next (also VERY easy), followed by mist form, then the big one: redoing wolf form.