summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/Game.fs
diff options
context:
space:
mode:
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.