The Spatials V3 devblog 2016-03-14

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
Pallet stock control panel

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
Resource picker

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
Shop as a pallet

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
New monsters: worm and 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
Cleaning blood stains

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.