Make many death events just leave corpses (no gore)

This commit is contained in:
2022-06-04 17:55:24 +01:00
parent 582881ca66
commit 62ccf8fad3
5 changed files with 84 additions and 8 deletions
+15
View File
@@ -61,6 +61,12 @@ paletteToColor pc = case pc of
WHITE -> white
BLACK -> black
normalizeColor :: Color -> Color
{-# INLINE normalizeColor #-}
normalizeColor (V4 r g b a) = V4 (f r) (f g) (f b) (f a)
where
f = min 1 . max 0
mixColors :: Float -> Float -> Color -> Color -> Color
{-# INLINE mixColors #-}
mixColors rata ratb (V4 r0 g0 b0 a0) (V4 r2 g2 b2 a2) =
@@ -70,6 +76,15 @@ mixColors rata ratb (V4 r0 g0 b0 a0) (V4 r2 g2 b2 a2) =
f x y = sqrt $ normrata * x^(2::Int) + normratb * y^(2::Int)
in V4 (f r0 r2 ) ( f g0 g2 ) ( f b0 b2 ) ( normrata * a0 + normratb * a2)
mixColorsLinear :: Float -> Float -> Color -> Color -> Color
{-# INLINE mixColorsLinear #-}
mixColorsLinear rata ratb (V4 r0 g0 b0 a0) (V4 r2 g2 b2 a2) =
let fullrat = rata + ratb
normrata = rata / fullrat
normratb = ratb / fullrat
f x y = normrata * x + normratb * y
in V4 (f r0 r2 ) ( f g0 g2 ) ( f b0 b2 ) ( normrata * a0 + normratb * a2)
light :: Color -> Color
{-# INLINE light #-}
light (V4 r g b a) = V4 (r+0.2) (g+0.2) (b+0.2) a