I still have a bunch of work to do with the gear items. One of them (utility) doesn’t even do anything. Armor is sort of incomplete. The booster is the most complete one simply because it’s the last feature that uses gear I worked on. So I’m adjusting and hopefully finalizing gear-related features, primarily their gameplay properties. Since this is a pretty big feature (continuation), I will cover the logical parts of my changes in this post and cover UI and visual changes in another one.
First thing that I sort of messed and didn’t think through is how exactly I am getting armor and shields in the game and to the player. Like, does their avatar robot always have these enabled? I don’t think I want that at the start, so I will in fact set player’s starting values as 0:
Now, the problem with my wording is that “armor” as in “amount of armor point” and “amount of damage reduced” is also called “armor”. So, firstly, I will rename the defensive stat “protection”:
And then add an actual armor point amount stat:
Now these values will be providing rarity- and level-based values for the gear:
In short, armor gear now provides two stats: armor hit points and damage reduction.
I can also make items with two stats like armor have one stat better than the other — lots of armor, little protection or vice versa. Not exactly exciting “variety”, but it works. So I’ll just adjust the modifiers for similar items to be something like unchanged/unchanged, increased/decreased and decreased/increased (here, for armor and protection respectively):
I will probably use the same logic for booster gear items too, which already have two stats:
White items can increase one of the values some, blue items can increase… As I write this out, I realize I should really be making a table instead if I actually want to document this. And you know, I can totally do that in WordPress and I’ve never made one in like 8 years, so (“_” – no change, “+” – increased some, “++” – increased much):
|White||_, _||+, _||_, +|
|Blue||+, +||++, _||_, ++|
|Purple||++, +||+, ++||++, ++|
I guess if I made armor items, it only follow I should make shield items. So I’m renaming my yet-to-be-decided utility gear items to shield items (and it’s not like I have any better ideas):
As with others, I can add the rarity-based shields base value and an extra multiplier for variation:
And specify all the actual value in the scaling options:
But again, I don’t know what to do with shield value multiplier. I think I will just add another property to shields to keep my two-parameter gear logic. I had ideas about making shields rechargeable, so I guess this is as good of a time as any to commit to that (or at least add the value). Anyway, the shields now have the recharge value:
Okay, I am really going overboard with this multiplier stuff. I now have these values tagging along everywhere:
The reason weapon damage has these is because a white/blue/purple weapon is also one of the different classes like SMG/AR/shotgun/etc. So I need two values. But I am looking at armor/shields/booster and I am just adjusting the main value back and forth a little bit. I mean, I can leave it as “unchanged” for every item and just change the rarity to a higher/lower tier, so I don’t actually need this functionality. Weapon “multiplier” is more like “class-adjuster” so I don’t need a per-weapon value like that for gear but can fudge them a bit.
I always hate undoing work. But it’s also somehow satisfying to rip out a bunch of code and realize how much you have unspaghettified.
So with removed multipliers, my values are somewhat more straight-forward:
I do have to clean up the actual vales though. Technically, I had 5 levels of gear – from reduced white to increased purple (if you ignore overlapping in between). But my main values are all literally white-blue-purple now. I think I need to add one or two divisions here or I won’t be able to make items have increased/reduced amounts between otherwise similar items. In fact, if I go back to my table from above and use relative “rarities” instead of multipliers:
|White||white, white||blue, white||white, blue|
|Blue||blue, blue||purple, white||white, purple|
|Purple||purple, purple||purple, purple||purple, purple|
This doesn’t really work very well, because I don’t want any item tier to have next tier values. In fact, what I need is something like this:
|White||white, white||white, gray||gray, white|
|Blue||blue, blue||blue, white||white, blue|
|Purple||purple, purple||purple, blue||blue, purple|
One could balance this all kinds of ways, but I think this is good enough. I don’t think more combinations make much difference. As long as there is some “improvement” and choice.
So I need a “gray” value for the reduced or rather non-increased white value. So I can add that extra value to my scaling options:
In this case, player gets 0 armor from a gray armor item (it would have protection only).
And I can rename/change the charge duration and speed value to also follow the tier-based naming:
This all feels much cleaner and more structured now. Almost like I have a design plan.
I almost feel like I can add more stuff. But I think I will stop here and not add any more functionality to gear.