I decided to rework UI and inventory systems before spending any more time with containers (it is just so cumbersome to agonize over so shitty code xD)
At a later point I want to link the infos you are shown to how much of the effect you know. At stage one it will only show "?". At stage two it will show the name of the effect. At concurrent stages there will be more info available up until the last stage where you can see all the info.
I didn't have much room today (pardon the pun) for gamedeving so I only added two poison mushrooms. That helped testing inventory submenu ui and the poisonous effect :)
I pixeled them myself! Not the best work ever but nothing to be ashamed of :)
I need to change some of the properties AND:
note to self: sort effect list after buffs (apply buffs to max properties first, then every other).
if you'd have a "increase maximum health" and an "restore health" effect on an item in inverse order, you'd first restore health and then increase maximum health, which I find stupid.
I finally implemented (or better yet connected) mixing ingredients over UI.
Also I fixed some bugs and annoyances, now I want to refine the mixing process based on a few rules:
-a solid and a powder don't mix
-if one of the items is a solid, the depiction of the other ingredient should be used
cha-cha-cha-changes:
https://github.com/Papiertig0r/Alchemy/commit/f7647a8f72ef8be638d19303c27b82f16e140a68
I'm not proud of today, I got way less done that I could have but hey, that's shitty architecture xD
Now you can grey stuff out, if it is not compatible with the ingredient you want to mix it with.
I now need to connect the mixing logic with the actual mixing ui. Then I need to abstract it to be able to use the same system with e.g. applying poison to a blade or buffs to an armor.
End of day 28 and you can add an ingredient to a tool. wow xD
I spent most of the day refactoring and made a bunch of changes
e.g. a statemachine that controls the purpose of the action and dodge/abort button
also custom comparation so that items will get stacked only if they have the same values
I had a point in the day where I wanted to delete everything and start anew, but I could hold myself back. Sometimes you got to push through - and that is hard!
See the changes on my github:
https://github.com/Papiertig0r/Alchemy/commits/master
(I've also begun to break up commits into smaller parts)
I added some further info when the inventory is open. As you clearly can see in the gif, I ain't no UI designer, but it does the job.
Next up would be showing effects and buffs too.
There are quite some kinks to work out, but I'm sure I can do it :)
(e.g. when inventory is open you can still throw things, but you throw the thing you last selected in the hotbar, not the current selected thing - same goes for consuming items. I want an additional menu shown for when inventory is open so I have to implement that too)
I just thought of something I should probably address soon:
Currently when you process an ingredient and pick it back up, it will get stacked with other unprocessed ingredients, thus removing your progress. You can also pick up unprocessed ingredients and they magically get processed when you already have one processed one in your inventory, I need a custom comparation operator to fix this.
I decided that the buffy things stay where they are, it would be too complex to change it and cost a lot of usability (on my end, anyways).
I implemented ingredient processing and now has come the time where I cannot longer avoid adding UI. With UI, I can add ingredient mixing, researching, equipping items and consuming them (from within the inventory and not the editor).
Also, the merge finally happened xD
See the changes:
https://github.com/Papiertig0r/Alchemy/commit/0d2e96ffb5bd05ce763b4e45a6b59f4ed2306b2b
Sadly I forgot to record my mouse pointer in the gif, but just imagine that I drop a herb onto the mortar & pestle and then press the process button a few times
Man, I thought there would be no testing today. I was gonna implement purity and yield and their effect on buffs, go to bed and test everything tomorrow, but I tested it now anyway.
BUT
I already know, that I'm going to refactor tomorow what I just added (it feels more like an effect thingy than a buff thingy)
also, I need to merge my branch back to master or will never do it xD
changy changes:
https://github.com/Papiertig0r/Alchemy/commit/141e85d23f3a920ff821aca9a735a0f671bd1134
I took a day off planning because I had some problems:
Buffs could be
a) single use (like damage or healing)
b) applied and after a certain time unapplied (like health regen or a speed boost) or
c) applied every few seconds until time ran out (like posion)
BUT
ingredients had only one trait (concentration). I am not willing to have up to three possible variables and only giving the player one of them, so I had to rearrange
After a chat with @kommiwhat I decided to implement three traits per ingredient:
Concentration, purity (or quality) and yield.
in a single buff, all three will add to strength
in a timed buff, concentration will add to strength, purity and yield will add to duration
in a repeated buff, concentration will add to strength, purity will decrease repeat time and yield will add to length
of course tools will now influence different traits (distill increases concentration but decreases yield)
also I thought about mixing ingredients and I think, it will average the concentration and add their yield (not sure for purity though)
all in all I'm on the right track