summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/Game.fs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-22 01:53:24 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-22 01:53:24 +0800
commit37953a4b58dfc5f3b8aedf10ad6f1474c2960767 (patch)
tree96b1d86ce3cfe33d8d9493ba7a68575f54c4f4b8 /src/LivingVillage.Desktop/Game.fs
parenta67e9262caca67f1078f77ed2f274a46e284c6c8 (diff)
downloadliving-village-37953a4b58dfc5f3b8aedf10ad6f1474c2960767.tar.gz
feat(desktop): P18 黄昏暖色真实渲染(加性暖色 veil + 双窗口光照 + 时段标签对齐)
Diffstat (limited to 'src/LivingVillage.Desktop/Game.fs')
-rw-r--r--src/LivingVillage.Desktop/Game.fs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs
index 765cea8..e48888e 100644
--- a/src/LivingVillage.Desktop/Game.fs
+++ b/src/LivingVillage.Desktop/Game.fs
@@ -893,6 +893,14 @@ type LivingVillageGame() as this =
VillageArt.drawGroundShadow spriteBatch pixel camera npc.Pos
let spec = VillageArt.npcSpriteSpecAtTarget npc.Id npc.Pos npc.Mind.Target world.Tick
VillageArt.drawCharacter spriteBatch artTextures camera npc.Pos spec profile.WorldTint
+
+ // Golden-hour wash: the multiplicative WorldTint can only darken, so a warm
+ // premultiplied veil is layered over the whole scene. Because rgb is premultiplied
+ // by its own low alpha it adds warm light without ever saturating to white; alpha
+ // is a pure tick function, so noon/midnight get none and dawn/dusk peak warm.
+ 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)
spriteBatch.End()
// Contextual floating prompt over the unique target; same CJK atlas font path as the HUD.