Internal development notes, very slightly cleaned up and commented a week later.
TL;DR: Pallet controls, resource picker, shops as disguised pallets, new boss-size enemies, rework litter/dirt and cleaning jobs.
After the succesful implementation of vitals in the past update, this last week was focused on fixing some ancillary systems that were implemented months ago. This involved making them more robust (for example to be able to handle any possible loss of either the busy state or even the existence of the entities they handle) and implementing more fleshed out semantics in the current context of both the engine and the game.
- pallet panel settings for min/max stock - stock system does not respect max-amount remember to ecs-mark-dirty
Pallets, first implemented months ago, will form the backbone of station storage and logistics. They always had an inventory control system but it was not exposed in the UI. There's now an inspector panel to manage their settings.
- resource picker - fix: resource picker does not display current selection add bg panel - resource picker scroll position is being reseted on panel refresh --> make the picker a modal window - resource picker: allow null selection - resource picker: support allowed resource subset
Selecting the resource for a pallet from a listing had some challenges. Since the inspector is a fully reactive UI, UX details like preserving the scroll position for a nested panel are not handled properly. It was also wasteful to devote so much vertical space to the listing. So a new dedicated modal dialog for picking a resource type has been implemented, and it will be reused in other parts of the UI.
- shops as pallets test with cheap diner shop filter for edible-component - proper shop semantics: resources only available for consumption, not for hauling or production add shop-component shops must add this add in-shop-component uses same system as in-stock-component, set when resting over a shop the hauling system always avoid sourcing in-shop-component item stacks - make test shop slow walkable for now
The V2 shop objects will work in V3 as pallet does. Both officers and visitors will consider any non-busy resource stack as a valid source for their tasks, including those on top of a pallet or a shop. The main difference will be that shops have a special flag that marks them as an invalid source for re-stocking hauling (so no restocking jobs from other shops or pallets will try to source from a shop), and more importantly, in the future will also make any consumer pay a price for picking an item from their stacks. Thus the player will have to carefully design their base and use security gates so shops are both more convenient, and storage and production areas are cut out from visitor routes.
- new enemy: worm - new enemy: octopus
Max has drawn two new big, boss-like monsters. Provisionally called "worm" and "octopus", they will be part of the station events, and will have unique AI and attacks to make them more challenging.
- stock info panel does not refresh because it's not an observer - remove the ItemC hack for litter - separate litter (haulable, recyclable) from dirt (can only be cleaned on-spot) - make recycler only for litter - adjust cleaning robot for this - make hit on organics spawn blood puddles - make corpses proper litter (only roting for organics) - only random litter can rot, never random dirt - clean job only for dirt
Another older system, the litter system, has been updated to play nicer with the new patterns in the game. It has also been separated in two new kind of tasks. Litter tasks require a recycler and involve delivering the litter object to it. Dirt cleaning tasks are perfomed on top of the dirt object and remove them on the spot. Another source of dirt was added (blood splatter from combat) and rotting was tuned a bit, althought it's still not properly implemented.