In May I did lots of work on The Underground!
I've set up The Archaeologist to have things to do during the day, they now move between random Ruin buildings.

2473
Updated NPC's finding their place of interest. Previously I was using a priority list and then getting the one that's closest. Unfortunately there's no way to get a random one from that list, so I had to add a check each time to do this
if _priority == true{ do priority list;}
else{do normal list;}
I THINK it's working
Wait, whether that's working or not, there's still an issue! I'm only asking the code to find one kind of interest, instead of each time to find all the kinds they can go to...hmmm

2474
HUGE rework and now it's all good! Added examine points for the Archaeologist so it looks better :D
I think I've covered all situations (culled and not, and different areas) Confused why NPC's couldn't sit in chairs in The Underground, forgot I gave them ownership X'D There's time I'm not getting back! Archaeologist looking at the Ruins.
There was one issue that I found way later than this. The code for culled NPC's looking for culled Beds was wrong, they were looking for unculled beds, which would never return true so that had to be fixed.

2475
I haven't fixed this yet, but I've been thinking about how I need to figure out a way of ensuing that the Ruins always spawn in a specific Biome (Rockland?)
That part is technically easy,the issue is ensuring that that Biome always spawns. Currently it is by filling a grid with values from perlin noise, then setting the area based on the value range. The Ruins are then placed in the centre of the map, which is not always a valid area for it. I could override it after the perlin gen, but it means having to check adjacent tiles to adjust those too and it would probably still end up looking jarring.

2476
Working on the next Cutscene and...urm it didn't go well...
The Fadeout didn't trigger so we just walked through the wall until we hit the room edge X'D

2477
Got the trigger working and the step points. This is an alternate cutscene to unlock access to The Infirmary and spawn the Doctor NPC. It's triggered by returning to the surface after having been hurt by a mob.

2479
Decided to go over my Snow Code to make sure I had it all right.
Needed to make sure it's fully just grid data, and fixing some of the checks, seems it was possible to dig through Minetracks and Flooring X'D

2483
While cleaning up some left over Snow object code I realised I was still doing world gen when loading saves, so I took that out expecting faster load times. I don't think it's faster? But the code is cleaner so that's something at least!!
Wait, I'm still progressing through those steps...now it's faster!

2484
I noticed Lightning wasn't animating properly, like at all. It just instantly disappeared, so I've reworked it and gave it random duration!
Watch out!

2485
Getting back to NPC stuff, I've updated the Save/Load system to include NPC Inventories, but first I had to rework the dang things. At somepoint I decided to store the player Inventory in the Camera object, and the NPC Inventory in themselves (with a different variable to the Players), so I had to go through the entire game and change those variables to both be on their actual owners and have the same name.

2486
Then I had to do some reworking of the Buy/Sell code for NPC's so I could save that data too!

2487
Whoops, slight oversight. Did a rework of the pathfinding and collision code and caused Goblins to forget how to use Beds... X'D
Need to disable the collision check when they reach the end of their path.

2488
The Doctor can now find her Bed in The Underground. If an NPC is not on the correct floor as their destination they will first find the stairs.
This is currently limited though, outside of bedtime they can only find things on the same floor as them. They can pick a random choice between available interactables + the stairs, if stairs go to then change floor but then they have to RNG a new interactable. Fortunately outside of events there's probably not much call for NPC to change floors.
https://i.imgur.com/dz36Cc6.gif
2489
Reworked how the areas of the Underground are established. Previously I had a character in the layout strings that designated the start and end corners of each area, but this caused issues if the areas x or y overlapped in any way. So now the top left corner marker actually just makes the area, then each other kind of building checks to see if there is already an area at the build location and sets that as the owner.
https://i.imgur.com/ct3IqGP.gif
2490
I need to do something about how the Underground Doors connect to Wall Tiles, they don't connect up the same in all situations.

2491
Also need to figure out a better way of adjusting the placement of things that don't take up a whole tile. Here I have vertical countertops not connecting up with the horizontal ones. I've fixed it in this situation by checking their position relative to the middle of the area and the offsetting if to the left of that. It's not ideal but it works here.

2492
Realised there was an issue with draw depth on the countertops. I thought maybe draw them via my always under or always on top, but the solution was to change the depth that the wall tiles are done instead. So I had to rework that whole system.

2493
This made it much easier to keep track of the depth values too since the only way for Game Maker to interact with tiles is if you know the exact depth of the one you want. This also means that Cave Walls with Ores in them has been reworked. I don't think there's a way to sort out the edge of the wall tile being over the player without drawing a partial tile, but it's not that noticeable so I'm leaving it for now.

2494
Then I just had to put the depth of the Countertops back to where it should be (based on their y position.)

2495
Mapped out a first draft of The Archive area, somewhere you can donate Books and Artefacts.
https://i.imgur.com/uSETVB7.gif
2496
Second draft, made a new rug. Turned out my old 9-slice rugs were actually 6-slice so they wouldn't work (except the one above, which worked entirely by coincidence)

2497
I wanted to make the furniture in The Underground to be more stone and metal than Wood so started replacing them with some new sprites. Slight issue, I wanted stone benches but that would mean having to rework how NPC's find seats, as well as rework seats to have multiple slots. That's way too much, so I tried just drawing a bench over the first stool in a set.
Didn't quite work. Instead I turn the stone bench into a tilesheet and now each stool in the series will draw the correct tile.

2498
Basic system for donating Books is set up, along with being able to interact with Bookcases to read them.

2499
Added UI for Bookcases.
https://i.imgur.com/wUQpc6Y.gif
2500
Set up the basic system to donate Artefacts to The Archive. Reused the existing Pedestals but added a lock so you can't remove the things you've donated.
I wanted them the items to bob up and down, but in unison. But couldn't get it to work. I thought it would be best to use The Archive itself to hold the value, but the tween isn't triggering. I'm assuming because it's deactivated when set. I'll keep trying at some point.
https://i.imgur.com/OcTy7Op.gif
2501
Got the Artefact system all set up, only thing left is to add the Buffs.
https://i.imgur.com/ZOfe6xC.gif
2502
OMG, I wasn't triggering the Tween, only setting it up! Artefacts now float!

2504
Reworked how lighting works, people kept complaining about how fast they moved and there was worry about epilepsy warnings, so now they smoothly increase and decrease in size. Different light sources still have different sizes and colours.

2505
Decided for Stat Buffs from the Artefacts they would be added together then multiplied against your base stats, then equipment stats are added on top. These also apply to NPC's.
I don't currently have temporary stat buffs from items/spells/objects, but I think they will probably work the same.
The way I've done it it doesn't mater the order that they are applied, it still gives the same amount, I was concerned that the order of the Artefacts would produce different stat values.

2506
Bug Fixes and small Changes
Fixed NPC's creating emotes when you're not in the same room as them.
Fixed some issues with the Fancy Text System, where values weren't being reset properly when finished, and where text could overflow from the window.
Fixed some pixel issues with Goblin Chins not lining up with the rest of the face when moving.
Fixed being able to sell snow from the Build Menu.
Fixed off by 1 error in NPC inventories.
Fixed NPC's not being able to walk through their home doors and not being able to use beds.
Fixed depth of Wall Tiles and Vertical Countertops so that they appearing in the wrong order.
Fixed Player shadow to be below Countertops.
Fixed going downstairs in The Caves taking you upstairs.
Fixed "rooms" in The Underground creating particles.
Fixed Stats from Gear not stacking.
Added a little lookup script that can be used to check if a Building can be Occupied, to keep code clear and to avoid accidentally giving that variable to buildings when a Goblin leaves it.
Added Ownership to Seating, to stop NPC's going into The Infirmary/Doctors room to sit.
Reworked how tiles are updated when Snow changes such as when it decays or is dug. It's more efficient with less repeated code.
Reworked Tile Depth code so that it's easier to read when Ores are added to Walls. Also removed the code for drawing Tile tops, since that's done with a Surface.
Reworked Wall Torches to not have collisions.
Updated the Save System to include New Mail/Stored Mail/Calendar Events/Announcements
I think that's everything, although I'm sure I've missed some minor things here and there X'D

Please look after yourselves, stay safe out there and remember to be awesome!💚
0 comments