Around a month ago, i went and cruised through and up to V 0.3.0 from nothing, and i thought to myself : "Man i must be some kind of Genius or something."
I now realize how oh so mistaken i was.
The Horrors of the Arrows
In the previous update, i talked about two things coming your way : The Ring Controller and Player Control.
The Ring Controller refers to the circle up above, upon which you then click on the various arrows strewn around it to position your own Actions.
- All attacks spread from the arrow upon which you clicked on, based off of the character's Weapon Range, or the Used Skill Range.
- Arrows that are a Full Color are known as "Selected Arrows" while arrows that are not are known as a "Spread Arrow"
- Any Arrow that is selected and Used becomes unusable until the start of the next Round. (In SotML, Each round lasts 3 Turns) [Spread Arrows will continue to spread over them as normal]
There are three types of actions in SotML : Attack, Evasion and Deflection (Or Counter if you prefer)
- Attacks are represented by Red Arrows, and deal damage based on the number of arrows that end up hitting their target. (Selected arrows account for 50% of the damage, Spread Arrows for the last 50%)
- Evasions are represented by Green Arrows, and reduce damage taken for each arrow that isn't hit by an attack. (Up to 100% damage reduction)
- Deflections (Or counters) are represented by Purple Arrows, and reduce damage taken by each attack that ends up hitting them.
Finally, each Selected arrow reacts differently upon encountering another Selected arrow based on the combination :
Side note : When two Basic Attack hit one another and thus, deal no damage, they will apply a passive where the next successful Basic Attack that lands will deal increasing damage. (Stacks up to 3 times)
As you can see, Skill Attacks will not Bounce off one another at all, and will simply deal damage as normal.
Furthermore, a Deflection (Or Counter) Arrow WILL have the same effects on a Skill Selected arrow. Which is a problem, since all Skills possesses more than one Selected arrow.
(From 2 ~ 4 Selected arrows depending on the skill's Cost and effects)
The stuff that's killing my brain and will one day work
One final note is that the Ring Controller will not always possess it's maximum amount of available arrows, being 8 Arrows.
Depending on your own Build with the various characters you'll become able to play, you'll get more or less arrows to use in battle.
A core thing of note (which doesn't work right now) is that, should an attack spread to a non-activated arrow, it will continue to spread until it touches the nearest arrow in it's path.
This allows attacks to have a far wider spread which can become a blessing or a curse depending on the situation. As it becomes far easier to hit your target should they try to evade, but also far easier to hit a counter from said target. (Which is bad)
As of right now, the code for the arrow behavior is doing fine, actually. It is in fact perfectly stable and usable. The big problem i have, right now, is that the damn UI isn't updating properly :
As you can see up above, the red font isn't follow the spreading of the arrows. Which is driving me a little insane, but aside from that, everything else is working.
Quickly on what the hell "Data type system" means
One element i can't really showcase since it's background inner working stuff, is the work that went into ensuring all of the data the game needs to make the battle system work well, works.
For the first two weeks or so i had to work on them first, while the arrows up above took the other two weeks. So here are our unsung heroes that now function properly :
- Character Data (HP, ATK, Etc..)
- Weapon Data (ATK, Crit, Arrow Spread Range, Number of Selected Arrow per use, etc..)
- Everything Ring related (Max arrows, spread, selected, types of attack, spreading based on selected, etc..)
- Enemy character (taking a character and weapon and handing them over to the enemy so they can use it)
And on top of that, a crap ton of optimization with the sole purpose of making every system fully independently working and controllable solely from one "master" script. (So i can know wtf is going on when all hell breaks lose)
The Ring Controller script is by far the worst offender, being the only script clocking in at above 1200 Lines. (Everything else is between 200 ~ 600 Lines)
Conclusions
The work has been harsh, since unlike previous systems, the Ring Controller had nothing i could really inspire me from in order to help me build it.
Fortunately enough, it works now. (Safe for the weird UI bugs of the background color stuff)
Which means we are now about to enter the final stage of this entire experiment, and one i skipped due to necessity until now. And that of course is..
Now just how hard can it be to design an AI when you knew next to nothing when it came to coding roughly a month ago..?
0 comments