weatherfactory / cultistsimulator-visible

Read-only preview builds of Cultist Simulator for the convenience of modders and the curious.
https://weatherfactory.biz/cultist-simulator/
37 stars 5 forks source link

Integrate 'essential' slot requirement feature into CS UI #213

Closed alexiskennedy closed 2 years ago

alexiskennedy commented 2 years ago

SphereSpec

Required: element must match at least one k/v Forbidden: element must match ZERO aspect k/v Essential: element must match ALL zero aspect k/v

I've just added Essential to SphereSpec because we needed it for BH (I wish I'd thought of it earlier. it would have avoided a lot of the nonsense with different OccupySpaceAs values in early prototypes). I've merged it across to framework.

Can you (a) test that I haven't introduced any bugs into CS slot behaviour? I have tested but not very thoroughly (b) display Essential values in the SlotDetailsWindow? using a ! prefix . (c) add a Russian loc value for UI_ASPECTSESSENTIAL in ru culture?

I've put this in as pri 6, but from my point of view (a) is essential for LONGIFLORUM or KALMIA updates, just in case I've done something silly, but (b)(c) pls prioritise against other modding features as you see fit.

==

Sidebar. A natural cousin of this feature would be to add compulsory / AND reqs to recipes as well. But obviously recipe reqs are in a different format. The natural way to add AND behaviour would be something like

{{"xfet":-1,"journal":-1},"xwis":1},

but I find that horribly hard to parse mentally (and it may not be valid JSON, I can't remember). It's also low priority - there have been only a handful of cases where I wanted to do this.

I suspect though it has come up in the modding community. Your thoughts welcome.