From ebe7f80bcf54189cc51a15bf17b99293b6ff57a3 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Tue, 22 Sep 2026 09:26:53 +0800 Subject: feat(desktop): P26 夜晚冷月光 veil(纯渲染层)+ 灯笼光晕径向无方斑回归 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/LivingVillage.Desktop/Game.fs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/LivingVillage.Desktop/Game.fs') diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs index c6da443..537ae3b 100644 --- a/src/LivingVillage.Desktop/Game.fs +++ b/src/LivingVillage.Desktop/Game.fs @@ -1186,6 +1186,14 @@ type LivingVillageGame() as this = let veilAlpha = M6Presentation.goldenVeilAlpha world.Tick if veilAlpha > 0 then spriteBatch.Draw(pixel, Rectangle(0, 0, viewport.Width, viewport.Height), VillageArt.premultiply 255 150 70 veilAlpha) + + // Cool moonlight wash on top of the night scene: a premultiplied blue veil whose + // alpha is a pure tick function (zero by day, suppressed through dusk/dawn warmth). + // Like the golden veil it adds light and can never saturate to white. + let moonAlpha = M6Presentation.moonlightVeilAlpha world.Tick + if moonAlpha > 0 then + let mr, mg, mb = M6Presentation.moonlightRgb + spriteBatch.Draw(pixel, Rectangle(0, 0, viewport.Width, viewport.Height), VillageArt.premultiply mr mg mb moonAlpha) spriteBatch.End() // Contextual floating prompt over the unique target; same CJK atlas font path as the HUD. -- cgit v1.2.3