Dafini-NorntasticSkillGrowth icon

NorntasticSkillGrowth

Skyrim-style perk trees for every Valheim skill, plus weapon forms, craft disciplines, dual wield, ally auras, prestige and respec. Optional Jewelcrafting support.

CHANGELOG

Changelog

0.14.2 — the Deep Fryer Basin, and the reason the fryer never made anything

Fryer planned its output for several versions and created nothing. nsg.fryer listed forty dishes that did not exist - a design preview presented as an inventory, which is the same wrong as a checklist saying "not seen yet" about a subsystem that has run.

It was not a broken builder. There was no builder. Nothing registered it with the forge, so nothing ever called it, and from in game that is indistinguishable from a feature that is merely slow to appear. The plan was always right; what was missing was the two dozen lines that turn a FryResult into a prefab.

Fried food is derived now, like the pies and the jerky, because what a modlist can fry is not knowable in advance. nsg.fryer reports built against planned rather than one number that means either.

The basin is a seventh station, not a seventh system

"Upgraded variants frying more at a time" is what the tiers already say: scale the batch, hold the speed. So the Deep Fryer Basin is an AutoStation like the other six - Container split by row, offline accrual, owner check, experience to whoever built it - and Deep Fry Tactician has something to level off at last.

It runs faster than the rest at five minutes a cycle, and it is the one station where that is right: frying is the quick trade in a mod full of slow ones.

Its chains are worked out at build time, because "ANY food" is a promise a written list cannot keep. Hydroponics needed the same thing and was a named special case inside Stations.cs - the fryer needing it too is exactly how a second special case gets added beside the first instead of replacing the reason it existed, so it is a DerivedChains hook on the definition now and both use it.

It is the third and last gate under StationPolicy's budget of three. "Any food becomes the next kind" is what the basin DOES, and no vanilla building does it - which is the whole test for whether a gate is earned.

The check that would have caught it years earlier

check_content_armed fails the build on any class that registers a content builder while Plugin never calls its Arm(). Same shape as a ConsoleCommand nobody registers, which this file has checked for the same reason since 0.9.4 - content that compiles, tests clean, ships, and does nothing.

Verified by removing the new Fryer.Arm() line, which is precisely the state the fryer shipped in for months.

844 assertions, 174 files, 563 API references clean.