summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/LivingVillage.Desktop/Game.fs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs
index bcc4094..c6da443 100644
--- a/src/LivingVillage.Desktop/Game.fs
+++ b/src/LivingVillage.Desktop/Game.fs
@@ -162,10 +162,25 @@ type LivingVillageGame() as this =
| _ -> 0.0
let riverscapeTourWatch = System.Diagnostics.Stopwatch()
let mutable riverscapeTourWatchStarted = false
+ // P25 证据钩子:村民巡游。NPC 行动目标固定在 Sim 的四个活动点(厨房/家/集市/工位),
+ // 让 avatar 在这些点之间环游,保证记录帧多数时刻屏内有 >=8 名村民。
+ let riverscapeVillageTour = Environment.GetEnvironmentVariable("LV_RIVERSCAPE_VILLAGE_TOUR") = "1"
+ let villageTourWaypoints () : (int * int) list =
+ let tileOf (p: Vec2) = (int p.X / Sim.tilePixels, int p.Y / Sim.tilePixels)
+ let plaza = tileOf Sim.plazaPoint
+ let kitchen = tileOf Sim.kitchenPoint
+ let home = tileOf Sim.homePoint
+ let worksite = tileOf Sim.worksitePoint
+ [ plaza; home; worksite; kitchen; plaza ]
/// 巡游路点:第一座桥的整列(含两端外沿)+ 民居门 + 核心中心,用于桥面行走取证。
+ /// LV_RIVERSCAPE_VILLAGE_TOUR=1 时改为村民活动点环游(P25 村民可见性取证)。
let riverscapeTourWaypoints () : (int * int) list =
match riverscapeMap with
| None -> []
+ | Some map when riverscapeVillageTour ->
+ villageTourWaypoints ()
+ |> List.filter (fun (x, y) -> x >= 0 && x < map.Width && y >= 0 && y < map.Height)
+ |> List.distinct
| Some map ->
let bridgeStops =
map.Bridges