Wolves - Den: a boulder cave at the foot of the rim, sited from the seed (away from the sea and spawn, mouth toward the valley, clearing in front) - Grace period: no wolves days 1-2; they move in on day 3 and howl; hunting from night 4; pack of 2, 3 from day 6, 4 from day 9; replaced by day - Wary pack hunters: circle and dart in one at a time; a lit campfire is a safe zone, a torch makes them hesitate, walls block bites (line of sight); hit one and the pack turns; hurt wolves flee; a lone wolf is timid; by day they defend the den; home at dawn - Glowing eyes, synthesised howls, can't sleep with wolves prowling - Wolf pelt and Wolf Cloak (+25 warmth) - Animals take a committed detour around obstacles Fishing - Fishing rod (workbench); cast a float onto the lake, 1.5 s to land a bite - Perch and rarer trout; faster bites at dawn/dusk and in rain; grill them - Visible fish near the shore that jump with splash rings Mixed diet - Foods belong to meat, fish or greens; each level runs down over ~1.5 days - One group low: no healing; two low: Malnourished (health drains); all three good: Balanced diet (heal x1.5); HUD diet bars; saved Tests: test_wolves and test_fishing_diet; run_all.sh covers 9 suites
487 lines
11 KiB
JSON
487 lines
11 KiB
JSON
{
|
|
"items": [
|
|
{
|
|
"id": "stick",
|
|
"name": "Stick",
|
|
"category": "resource",
|
|
"stack": 50,
|
|
"description": "A sturdy branch. Handles, kindling, fuel.",
|
|
"mesh": "stick",
|
|
"fuel": 20
|
|
},
|
|
{
|
|
"id": "stone",
|
|
"name": "Stone",
|
|
"category": "resource",
|
|
"stack": 50,
|
|
"description": "A fist-sized stone.",
|
|
"mesh": "stone"
|
|
},
|
|
{
|
|
"id": "flint",
|
|
"name": "Flint",
|
|
"category": "resource",
|
|
"stack": 50,
|
|
"description": "Sharp-edged stone. Knaps into blades and axe heads.",
|
|
"mesh": "flint"
|
|
},
|
|
{
|
|
"id": "wood",
|
|
"name": "Wood",
|
|
"category": "resource",
|
|
"stack": 50,
|
|
"description": "Split timber from a felled tree.",
|
|
"mesh": "wood",
|
|
"fuel": 60
|
|
},
|
|
{
|
|
"id": "stone_axe",
|
|
"name": "Stone Axe",
|
|
"category": "tool",
|
|
"stack": 1,
|
|
"description": "Chops trees. Hold it and click on a tree.",
|
|
"mesh": "stone_axe",
|
|
"tool": {
|
|
"kind": "axe",
|
|
"tier": 1,
|
|
"damage": 1.0
|
|
}
|
|
},
|
|
{
|
|
"id": "stone_pickaxe",
|
|
"name": "Stone Pickaxe",
|
|
"category": "tool",
|
|
"stack": 1,
|
|
"description": "Breaks boulders into stone and flint.",
|
|
"mesh": "stone_pickaxe",
|
|
"tool": {
|
|
"kind": "pickaxe",
|
|
"tier": 1,
|
|
"damage": 1.0
|
|
}
|
|
},
|
|
{
|
|
"id": "club",
|
|
"name": "Wooden Club",
|
|
"category": "weapon",
|
|
"stack": 1,
|
|
"description": "Crude, heavy, effective. One blow fells a rabbit.",
|
|
"mesh": "club",
|
|
"weapon": {
|
|
"damage": 12,
|
|
"reach": 2.4,
|
|
"stamina": 8,
|
|
"cooldown": 0.55
|
|
}
|
|
},
|
|
{
|
|
"id": "campfire",
|
|
"name": "Campfire",
|
|
"category": "placeable",
|
|
"stack": 5,
|
|
"description": "Light and warmth. Place it, then keep it burning.",
|
|
"mesh": "campfire",
|
|
"place": {
|
|
"piece": "campfire",
|
|
"footprint": [
|
|
1.4,
|
|
1.4
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "workbench",
|
|
"name": "Workbench",
|
|
"category": "placeable",
|
|
"stack": 1,
|
|
"description": "Crafting station for better gear and storage.",
|
|
"mesh": "workbench",
|
|
"place": {
|
|
"piece": "workbench",
|
|
"footprint": [
|
|
2.0,
|
|
1.1
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "chest",
|
|
"name": "Wooden Chest",
|
|
"category": "placeable",
|
|
"stack": 5,
|
|
"description": "Stores 16 stacks.",
|
|
"mesh": "chest",
|
|
"place": {
|
|
"piece": "chest",
|
|
"footprint": [
|
|
1.2,
|
|
0.8
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "fiber",
|
|
"name": "Plant Fiber",
|
|
"category": "resource",
|
|
"stack": 50,
|
|
"description": "Tough stems from bushes. Twine, torch wrapping.",
|
|
"mesh": "fiber",
|
|
"fuel": 5
|
|
},
|
|
{
|
|
"id": "berries",
|
|
"name": "Berries",
|
|
"category": "food",
|
|
"stack": 30,
|
|
"description": "A handful of wild berries. Right-click to eat.",
|
|
"mesh": "berries",
|
|
"food": {
|
|
"hunger": 9,
|
|
"health": 2,
|
|
"diet": {
|
|
"plants": 14
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "mushroom",
|
|
"name": "Mushroom",
|
|
"category": "food",
|
|
"stack": 30,
|
|
"description": "Edible raw, much better roasted at a campfire.",
|
|
"mesh": "mushroom",
|
|
"food": {
|
|
"hunger": 6,
|
|
"health": 0,
|
|
"diet": {
|
|
"plants": 10
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "roasted_mushroom",
|
|
"name": "Roasted Mushroom",
|
|
"category": "food",
|
|
"stack": 30,
|
|
"description": "Smoky and filling. Right-click to eat.",
|
|
"mesh": "roasted_mushroom",
|
|
"food": {
|
|
"hunger": 24,
|
|
"health": 8,
|
|
"diet": {
|
|
"plants": 30
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "torch",
|
|
"name": "Torch",
|
|
"category": "tool",
|
|
"stack": 1,
|
|
"description": "Hold it for light and a little warmth.",
|
|
"mesh": "torch",
|
|
"light": {
|
|
"range": 10.0,
|
|
"energy": 1.6,
|
|
"heat": 0.3
|
|
}
|
|
},
|
|
{
|
|
"id": "grave",
|
|
"name": "Grave",
|
|
"category": "placeable",
|
|
"stack": 1,
|
|
"description": "Where you fell. Your belongings are inside.",
|
|
"mesh": "grave",
|
|
"hidden": true,
|
|
"place": {
|
|
"piece": "grave",
|
|
"footprint": [
|
|
1.0,
|
|
1.6
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "wood_floor",
|
|
"name": "Wood Floor",
|
|
"category": "building",
|
|
"stack": 20,
|
|
"description": "2 x 2 m. Snaps to other pieces. Sits level on the ground.",
|
|
"mesh": "wood_floor",
|
|
"place": {
|
|
"piece": "build",
|
|
"kind": "floor"
|
|
}
|
|
},
|
|
{
|
|
"id": "wood_wall",
|
|
"name": "Wood Wall",
|
|
"category": "building",
|
|
"stack": 20,
|
|
"description": "2 x 2 m. Snaps to floor edges, other walls and roofs.",
|
|
"mesh": "wood_wall",
|
|
"place": {
|
|
"piece": "build",
|
|
"kind": "wall"
|
|
}
|
|
},
|
|
{
|
|
"id": "wood_door",
|
|
"name": "Wood Door",
|
|
"category": "building",
|
|
"stack": 10,
|
|
"description": "A wall with a door in it. E opens and closes it.",
|
|
"mesh": "wood_door",
|
|
"place": {
|
|
"piece": "door",
|
|
"kind": "door"
|
|
}
|
|
},
|
|
{
|
|
"id": "wood_roof",
|
|
"name": "Wood Roof",
|
|
"category": "building",
|
|
"stack": 20,
|
|
"description": "Rises 1 m over 2 m. Two from opposite walls of a 4 m hut meet at the ridge.",
|
|
"mesh": "wood_roof",
|
|
"place": {
|
|
"piece": "build",
|
|
"kind": "roof"
|
|
}
|
|
},
|
|
{
|
|
"id": "wood_gable",
|
|
"name": "Wood Gable",
|
|
"category": "building",
|
|
"stack": 20,
|
|
"description": "Triangle that closes the end of a roof. R to flip it.",
|
|
"mesh": "wood_gable",
|
|
"place": {
|
|
"piece": "build",
|
|
"kind": "gable"
|
|
}
|
|
},
|
|
{
|
|
"id": "bed",
|
|
"name": "Bed",
|
|
"category": "placeable",
|
|
"stack": 1,
|
|
"description": "Sets your spawn point. Sleep through the night under a roof.",
|
|
"mesh": "bed",
|
|
"place": {
|
|
"piece": "bed",
|
|
"footprint": [
|
|
1.0,
|
|
2.1
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "raw_meat",
|
|
"name": "Raw Meat",
|
|
"category": "food",
|
|
"stack": 20,
|
|
"description": "Cook it at a campfire. Eaten raw it barely helps.",
|
|
"mesh": "raw_meat",
|
|
"food": {
|
|
"hunger": 5,
|
|
"health": -4,
|
|
"diet": {
|
|
"meat": 8
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "cooked_meat",
|
|
"name": "Cooked Meat",
|
|
"category": "food",
|
|
"stack": 20,
|
|
"description": "Hearty. Leaves you Well fed: faster stamina and healing for 10 minutes.",
|
|
"mesh": "cooked_meat",
|
|
"food": {
|
|
"hunger": 34,
|
|
"health": 12,
|
|
"diet": {
|
|
"meat": 40
|
|
},
|
|
"buff": {
|
|
"id": "well_fed",
|
|
"name": "Well fed",
|
|
"seconds": 600,
|
|
"stamina_regen": 1.3,
|
|
"health_regen": 2.0
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "hide",
|
|
"name": "Hide",
|
|
"category": "resource",
|
|
"stack": 20,
|
|
"description": "Raw hide from a deer or boar. Makes a warm cloak.",
|
|
"mesh": "hide"
|
|
},
|
|
{
|
|
"id": "feather",
|
|
"name": "Feather",
|
|
"category": "resource",
|
|
"stack": 50,
|
|
"description": "Found in meadows. Fletching for arrows.",
|
|
"mesh": "feather"
|
|
},
|
|
{
|
|
"id": "spear",
|
|
"name": "Wooden Spear",
|
|
"category": "weapon",
|
|
"stack": 1,
|
|
"description": "LMB thrusts (long reach). RMB throws it: pick it up again where it lands.",
|
|
"mesh": "spear",
|
|
"weapon": {
|
|
"damage": 18,
|
|
"reach": 3.1,
|
|
"stamina": 10,
|
|
"cooldown": 0.6,
|
|
"throw": {
|
|
"damage": 30,
|
|
"speed": 24.0,
|
|
"stamina": 14
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "bow",
|
|
"name": "Crude Bow",
|
|
"category": "weapon",
|
|
"stack": 1,
|
|
"description": "Hold LMB to draw, release to shoot. Uses arrows.",
|
|
"mesh": "bow",
|
|
"bow": {
|
|
"ammo": "arrow",
|
|
"draw": 0.9,
|
|
"damage": [
|
|
8,
|
|
32
|
|
],
|
|
"speed": [
|
|
16.0,
|
|
46.0
|
|
],
|
|
"stamina": 6
|
|
}
|
|
},
|
|
{
|
|
"id": "arrow",
|
|
"name": "Flint Arrow",
|
|
"category": "weapon",
|
|
"stack": 50,
|
|
"description": "Ammunition for the bow. Arrows that miss can be picked up again.",
|
|
"mesh": "arrow"
|
|
},
|
|
{
|
|
"id": "hide_cloak",
|
|
"name": "Hide Cloak",
|
|
"category": "tool",
|
|
"stack": 1,
|
|
"description": "Right-click to wear it (+15 warmth, less chill from wet). Take it off from the inventory screen.",
|
|
"mesh": "hide_cloak",
|
|
"wear": {
|
|
"warmth": 15,
|
|
"wet_chill": 0.6
|
|
}
|
|
},
|
|
{
|
|
"id": "wolf_pelt",
|
|
"name": "Wolf Pelt",
|
|
"category": "resource",
|
|
"stack": 20,
|
|
"description": "Thick grey fur. The warmest thing on the island.",
|
|
"mesh": "wolf_pelt"
|
|
},
|
|
{
|
|
"id": "wolf_cloak",
|
|
"name": "Wolf Cloak",
|
|
"category": "tool",
|
|
"stack": 1,
|
|
"description": "Right-click to wear it (+25 warmth, wet barely chills you). Take it off from the inventory screen.",
|
|
"mesh": "wolf_cloak",
|
|
"wear": {
|
|
"warmth": 25,
|
|
"wet_chill": 0.35
|
|
}
|
|
},
|
|
{
|
|
"id": "fishing_rod",
|
|
"name": "Fishing Rod",
|
|
"category": "tool",
|
|
"stack": 1,
|
|
"description": "LMB casts into the lake. When the float dips, click quickly to land the fish.",
|
|
"mesh": "fishing_rod",
|
|
"fishing": {
|
|
"cast_speed": 12.0,
|
|
"stamina": 4
|
|
}
|
|
},
|
|
{
|
|
"id": "perch",
|
|
"name": "Perch",
|
|
"category": "food",
|
|
"stack": 20,
|
|
"description": "A small lake fish. Grill it at a campfire. (Fish)",
|
|
"mesh": "perch",
|
|
"food": {
|
|
"hunger": 4,
|
|
"health": -2,
|
|
"diet": {
|
|
"fish": 8
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "trout",
|
|
"name": "Trout",
|
|
"category": "food",
|
|
"stack": 20,
|
|
"description": "A fine, fat lake trout. Bites best at dawn and dusk. (Fish)",
|
|
"mesh": "trout",
|
|
"food": {
|
|
"hunger": 6,
|
|
"health": -2,
|
|
"diet": {
|
|
"fish": 12
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "grilled_perch",
|
|
"name": "Grilled Perch",
|
|
"category": "food",
|
|
"stack": 20,
|
|
"description": "Flaky and good. (Fish)",
|
|
"mesh": "grilled_perch",
|
|
"food": {
|
|
"hunger": 18,
|
|
"health": 6,
|
|
"diet": {
|
|
"fish": 30
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "grilled_trout",
|
|
"name": "Grilled Trout",
|
|
"category": "food",
|
|
"stack": 20,
|
|
"description": "Rich and filling. (Fish)",
|
|
"mesh": "grilled_trout",
|
|
"food": {
|
|
"hunger": 28,
|
|
"health": 10,
|
|
"diet": {
|
|
"fish": 45
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|