Trying to get back into writing this as I go, so sorry if it's a bit more stream of consciousness!
Crops
Decided to change how I'm storing the Scanned Soil Data.
Originally I just used my temp data slots that I use for all the menus and stuff, but since the data is stored until you cycle items/use the Magnifying Glass a second time/move far enough away from the soil, there's always going to be the chance of the temp data not being cleared.
So now it's it's own variable I can completely avoid that.
Been thinking about how Soil Hydration and Fertiliser level is stored, it's currently part of the Tiled Soil object that is created when you use the Shovel. But really it should be stored in the world ds_grid.
The only issue with that is updating the values over time. It's not efficient at all to constantly run though the ds_grid and update them.
I suppose I can still use the Tiled Soil object to do it, so only Ground with Tiled Soil can dry out?
For now though I think I'll avoid the ds_grid system and just have the Tiled Soil only be destroyed when it dries out. Will update it so Hammering doesn't destroy the Soil and neither does Harvesting the Crop.
[Edit] Except, I can't do this for Culled Soil, it wouldn't be able to update the autotile for adjacent Soil...dang it. Ok I'll leave it as is for now and think about other options!
[Edit2] OH! I should check how my Snow Despawn code works!!
Ah ha! Yea ok, so the way I'm dealing with Snow and Wet Sand is compatible! I've updated it so when you use the Shovel it adds the created Soil spot to the ds_map for Snow/etc, and it's removed from it when it's destroyed.
This way I can update the auto-tile on adjacent Soil if it's destroyed when culled.
For testing I stored the ID of last Soil created, then once culled I destroy it with a hotkey, after it's destroyed it successfully updated the adjacent Soil.
https://i.imgur.com/10446kI.gif
2237
Redid how Soil Hydration works with the Autotiler, now I don't need to update any values the draw code just adjusts itself.
https://i.imgur.com/9qE61Ss.gif
2242
Testing out upgrading Soil. Planning on having it so as long as you keep Soil occupied it wont despawn, doing so lets it gain EXP for each Crop you grow in it.
Also maybe using the Hammer might grant EXP too? Instead of harvesting the Crop the Hammer turns them back into Seeds.
I think I might change the text, "LVL UP" might make people think it's the Player who's levelled up, not the Soil. "SOIL UP!" maybe?
2243
I've turned Soil Levelling off for NPC Farms, since that Soil never degrades. I could keep it, but I don't want the player getting mad at the NPC's for failing to keep the Soil going.
Eventually once I've made Crops grow at a reasonable rate instead of the super fast speed I have for testing, I'll have to figure out what else Farmers can do with the rest of their time. Even if a Farm is massively expanded it really wont take much time to complete the harvest/plant/water/fertilise loop.
Giving them multiple Farms is an option, but I'd rather just stick to them expanding. I could add Foraging to their pathfinding but I'm trying to avoid long distance heavy calculations.
Weather
Woops? Seems my weather area wasn't quite right!
Seems there's issues with the floating point making it not cover the correct area.
2238
Had to turn off a bunch of the effect so I could compare and figure this out. Here there' s two different speed of Rain, and you can see how they don't stop in the same place, despite starting at the same point.
2239
There didn't seem to be any other explanation for it, other than the decimal place in the part_type_life value caused by dividing the distance by the speed.
I did a bunch of clean up to the existing code, then set it to add an extra subCell height to the distance in the calculation for part_type_life, then rounding it. It's not perfect but it works well enough.
2240
Added new Attribute Movement Speed, as well as Status Effects for Haste and Slow.
Made sure to not have it effect the speed of Boats or the Hot air Balloon, but it does effect Rolling.
https://i.imgur.com/l2znwSL.gif
2244
Equipment
Started work on an Equipment System, really glad I set up the Inventory UI to be reusable with different conditions!
Decided on 6 pieces of Equipment for now. Headgear, Torso, Legs, Feet and 2 Earrings (because Goblin!).
I was tempted to add Left and Right hand too but I think I like them better as being hot-swappable.
2246
First swipe at UI for the Equipment Menu, it works but it's not great. Also I really don't need that text box at the bottom of it, I can always add a separate floating one late if I need to add info text for the options.
2247
Added some more features, like showing which Stat has been effected by Equipped Gear, as well as the Stats of Equipment you're equipping.
2248
Minor tweaks and added more UI to make things more readable.
2249
Version 2! Now with Gear comparison when swapping Equipment!
2250
Ended up doing pretty much a full rework of how the Town/NPC/Player Status UI works and is controlled.
Ended up removing a bunch of the NPC Menu options including from the Town Menu, but I need to add them back into the new UI, and make the box bigger to hold them all. I could just add a bit on top of the existing box, but I'll need to adjust the draw offset for it.
2256
Added the Character Creator menu back into the Players Menu, I'm not sure if I'll keep this here but I really want the Player to be able change their settings when they want. That said having an NPC being able to do it would be cool.
Maybe a stripped down version? Just the text entry options and have the appearance ones be via an NPC?
2259
Started top make some Equipment sprites. Needed to compare their sizes to other items, kind of forgot I usually use the smaller box in my template not the bigger one...I made some smaller sprites too and they look ok but for now I'm sticking to this size.
2255
Updated the Equipment Menu so that the current stat boosts are reflected in the displayed stats.
2257
Made a bunch more Equipment sprites as well as a new Crafting Building, Equipment Bench!
Accidentally made a bunch of Leather Armour without having a source of Leather??
Guess I'll take a LEAF out of modern day recycling and have my Leather be made out of Plant Fibres and some sort of binding/hardening agent?
Fun fact did you know they can make Leather out of Pineapple Leaves!!?
I've also updated the Crafting UI to check if a Crafting Recipe has been Unlocked or not.
2258
I'm not sure how I'm going to balance Equipment Crafting yet, since the world has so much of an abundance of Ore it's going to be pretty easy to skip over the Leather stuff.
I've a couple of options:
-Add Skill level to Crafting (good but you could just boost your level by making lots of low level gear?).
-Add Recipe Unlocks (had this planned anyway, but not sure how I'm going to do it, could be skill based, could require NPC's to help you in some way).
-Have better Equipment require lesser Equipment as part of the recipe (Iron Armour requires Leather Armour+Iron).
Will probably use all 3 of these to some degree.
I'm also thinking about reworking how my Crafting Systems work. Currently I have 2 different types of Buildings, Converters and Crafters.
Converters change one Item into another.
Crafters create an Item from a Recipe.
I like the idea of Converters being passive, you fill them up and they do their thing.
But Crafters I don't like how you can wander away once they've started, especially since Stats are going to have an effect.
So I think I'll add some sort of Minigame for them. The Minigame has to be pretty simple and accessible, I want to avoid timing based games (or be very generous with the timing).
The Minigame will have a chance of improving the Crafted item, but I'll also include a Skip button if you just want the item straight away.
This will also give more uses to NPC's, since they can also Craft stuff if it's part of their Job!
New Building
I was procrastinating working on more UI and came across a tutorial about how to adjust a single note into a whole scale...so urm lets make a Piano!
2251
Seems to work perfectly? Now I just have to set up the control scheme.
I don't know how to put videos here so link for audio:
https://i.imgur.com/2kWuyhB.mp4
Dang it, my skiving backfired and I've ended up doing MORE UI.
2252
This is definitely all working, but I've encountered some issues. Mainly you can only press so many keys at once on most keyboards before you get keyboard ghosting (where a key fails to be registered).
So I'm going to have to change the controls. As it is you can't change the octave and play some keys above F at the same time.
https://youtu.be/W18_Slu4wOc?si=4SiOGFZuKnGJ4C3t
After I made this I changed the controls for keyboard to be the keys ASDFGHJKL, with Shift to move down and Octave and Space to move up. That should fix the ghosting issues.
I might also add a way of playing chords, since you can't play notes from two different Octaves at once.
(maybe bind a few common chords to different keys? Not sure what the options for Joypad are though)
New Items
Added new Food and the items needed to Cook it!
Maple Sours, sour hard candies just like Grandma use to have!
Made in a Cooking Pot, they may seem simple enough but you need some advanced ingredients to make them.
You need to Convert Sugarcane into Molasses using a Campfire.
Plus you also need Citric Acid which you can Convert from Molasses in a Fermentor, or Crafted in a Distiller using Lemons and Quicklime (Converted from Seashells in a Furnace).
2253
Bug Fixes and small Changes
-Fixed crash bug involving the Minimap when dismissing Culled NPC's.
-Fixed dismissing Culled NPC's not updating the runningNPC list.
-Fixed bug where not all temp Menu Data wasn't cleared on game start after buildings were created.
-Fixed Food Effect text, correcting spacing, also adding "%" for percentage Effects.
-Fixed a bug in font pack where "#" couldn't be used, had to add an extra character and assign "#" to it.
-Fixed spacing issues with font packs.
-Swapped out the old Autotiler for Soil with the more efficient Snow one.
-Removed Building Resizing from The Smithy until I can figure out the best way to stop the vertical Countertops from being Loaded in the wrong place after it has been resized to the left..
-Updated World Generated Crops to not start degrading until they've been harvested once.
I think that's everything?
I hope you've all had an amazing month and are keeping well.
Please look after yourselves and keep being awesome!
💚
1 comment