Fish per water type in data/fish.json; worldlets design

- data/fish.json: fish, weights, dawn/dusk odds, bite timing and minimum
  depth per water type; ItemDB.define_water() registers them
- world.water_at(x, z) answers lake / sea / dry land; the float uses it,
  so a worldlet with a sea only needs a "sea" entry
- Clear messages for shallow water and water with nothing to catch
- Lake fish: more of them, bigger, nearer the shore, jumping with splash rings
- docs/WORLDLETS_DESIGN.md: proposal for data-defined world types
This commit is contained in:
Paul Bailey
2026-11-04 11:41:04 +00:00
parent f174221268
commit 4630ea5d44
7 changed files with 294 additions and 19 deletions

29
data/fish.json Normal file
View File

@@ -0,0 +1,29 @@
{
"_comment": "Fishing by water type. world.water_at() says which type a spot is; a type with no entry has no fish. Weights are relative. 'dawn_dusk' replaces the weight at dawn (05:00-08:30) and dusk (17:00-20:30). Bite waits are seconds, scaled by the modifiers.",
"modifiers": {
"dawn_dusk_wait": 0.6,
"rain_wait": 0.8,
"missed_wait": 1.3
},
"waters": {
"lake": {
"min_depth": 0.5,
"bite_wait": [
5.0,
14.0
],
"fish": [
{
"id": "perch",
"weight": 78,
"dawn_dusk": 60
},
{
"id": "trout",
"weight": 22,
"dawn_dusk": 40
}
]
}
}
}