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
26 lines
1.1 KiB
Bash
Executable File
26 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Runs every headless test suite. Fails if any suite fails OR prints a script
|
|
# error (a script that fails to compile can otherwise let a suite "pass").
|
|
# Usage: tests/run_all.sh (from the repo root; needs `godot` on PATH)
|
|
cd "$(dirname "$0")/.." || exit 1
|
|
status=0
|
|
for t in test_survival_core test_survival_stats test_save_load test_weather_building test_creatures_combat test_wolves test_fishing_diet test_terrain_edges test_boundary; do
|
|
extra=""
|
|
[ "$t" = "test_boundary" ] && extra="--fixed-fps 30"
|
|
# A suite that waits on a world that failed to load would hang forever,
|
|
# so give each one a time limit when `timeout` is available.
|
|
limit=""
|
|
command -v timeout >/dev/null 2>&1 && limit="timeout 300"
|
|
out=$($limit godot --headless --path . $extra --script "res://tests/$t.gd" 2>&1)
|
|
code=$?
|
|
result=$(printf '%s\n' "$out" | grep "RESULT:" | tail -n 1)
|
|
if [ $code -ne 0 ] || printf '%s\n' "$out" | grep -q "SCRIPT ERROR"; then
|
|
echo "FAIL $t $result"
|
|
printf '%s\n' "$out" | grep -E "FAIL|SCRIPT ERROR|at: " | head -n 20
|
|
status=1
|
|
else
|
|
echo "ok $t $result"
|
|
fi
|
|
done
|
|
exit $status
|