Improve Logbook presentation

This commit is contained in:
Alexander Sellite 2026-08-02 09:57:05 -04:00
parent 984f7c641c
commit c956301194
5 changed files with 578 additions and 107 deletions

View file

@ -16,6 +16,44 @@ const CATALOG_ORDER: Array[StringName] = [
&"catfish_white",
]
# Short presentation notes are kept here with the catalog contract rather
# than mixed into gameplay balance resources. Add facts deliberately when a
# species joins the catalog.
const FISH_FACTS: Dictionary[StringName, String] = {
&"bluegill": (
"bluegill fathers sweep shallow bowls into the bottom for nests, "
+ "then stand guard. whole neighborhoods of nests can crowd together."
),
&"bass": (
"striped bass split their lives between salt and fresh water, "
+ "returning upriver to spawn. a long-lived striper may see three decades."
),
&"carp": (
"whisker-like barbels help a common carp investigate the bottom. "
+ "nosing through sediment can cloud the water and loosen plants."
),
&"sunfish": (
"ocean sunfish are built more like enormous swimming heads than "
+ "ordinary fish. they visit the surface and turn sideways to warm up."
),
&"catfish_blue": (
"a deep fork in the tail inspired the blue catfish's scientific "
+ "name. it rests deep by daylight and becomes more active after dark."
),
&"catfish_channel": (
"a channel catfish can taste through skin all over its body, "
+ "especially near its gills and whiskers. the male watches the eggs."
),
&"catfish_flathead": (
"flatheads favor hideouts made by logs, rocks, ledges, and other "
+ "underwater structure. as they grow, fish dominate their menu."
),
&"catfish_white": (
"white catfish began along the atlantic coast between new york "
+ "and florida. people later carried them far beyond that home range."
),
}
static func category_for(fish: FishDataType) -> WaterType.Type:
if fish == null:
return WaterType.Type.OTHER
@ -41,6 +79,10 @@ static func catalog_number(fish_id: StringName) -> int:
return index + 1 if index >= 0 else 0
static func facts_for(fish_id: StringName) -> String:
return str(FISH_FACTS.get(fish_id, "unknown"))
static func ordered_species(
candidates: Array[FishDataType],
) -> Array[FishDataType]: