diff options
Diffstat (limited to 'src/LivingVillage.Desktop/Game.fs')
| -rw-r--r-- | src/LivingVillage.Desktop/Game.fs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs index 51fa74d..79c6fec 100644 --- a/src/LivingVillage.Desktop/Game.fs +++ b/src/LivingVillage.Desktop/Game.fs @@ -681,18 +681,22 @@ type LivingVillageGame() as this = profile.WorldTint // Warm lantern glows strengthen as night falls (pure function of tick phase). + // Soft radial falloff made of wide translucent rings; no hot white core, + // the lantern sprite itself stays readable underneath. if profile.LanternGlow > 0.3f then let glow = profile.LanternGlow - let haloAlpha = int (90.0f * glow) + let haloAlpha = int (34.0f * glow) + let ringAlpha = int (18.0f * glow) for prop in renderPlan.Props do match prop.Kind with | RiverLantern -> let position = VillageArt.worldTile renderPlan prop.Position let screenX = position.X * Sim.tilePixels - int camera.X + Sim.tilePixels / 2 let screenY = position.Y * Sim.tilePixels - int camera.Y - Sim.tilePixels / 2 - spriteBatch.Draw(pixel, Rectangle(screenX - 22, screenY - 22, 60, 60), Color(252, 216, 148, int (float32 haloAlpha * 0.35f))) - spriteBatch.Draw(pixel, Rectangle(screenX - 14, screenY - 14, 44, 44), Color(252, 216, 148, haloAlpha)) - spriteBatch.Draw(pixel, Rectangle(screenX - 8, screenY - 8, 32, 32), Color(255, 236, 180, haloAlpha)) + spriteBatch.Draw(pixel, Rectangle(screenX - 30, screenY - 30, 76, 76), Color(252, 196, 128, int (float32 ringAlpha * 0.5f))) + spriteBatch.Draw(pixel, Rectangle(screenX - 24, screenY - 24, 64, 64), Color(252, 206, 148, ringAlpha)) + spriteBatch.Draw(pixel, Rectangle(screenX - 18, screenY - 18, 52, 52), Color(252, 216, 148, haloAlpha)) + spriteBatch.Draw(pixel, Rectangle(screenX - 12, screenY - 12, 40, 40), Color(255, 226, 168, haloAlpha)) | _ -> () let avatarSpec = VillageArt.avatarSpriteSpec avatarFacing world.Tick |
