diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/LivingVillage.Desktop.Tests/PrototypeTests.fs | 18 | ||||
| -rw-r--r-- | src/LivingVillage.Desktop/Assets/jiangnan-characters.png | bin | 1892 -> 2539 bytes | |||
| -rw-r--r-- | src/LivingVillage.Desktop/VillageArt.fs | 11 |
3 files changed, 25 insertions, 4 deletions
diff --git a/src/LivingVillage.Desktop.Tests/PrototypeTests.fs b/src/LivingVillage.Desktop.Tests/PrototypeTests.fs index 4d698ad..3e15272 100644 --- a/src/LivingVillage.Desktop.Tests/PrototypeTests.fs +++ b/src/LivingVillage.Desktop.Tests/PrototypeTests.fs @@ -223,6 +223,24 @@ type PrototypeTests () = Assert.AreEqual<AnimationFrame>(FrameOne, (VillageArt.animationFrame 8L)) [<TestMethod>] + member _.VillagersUseFourDistinctVariantsDistinctFromTheAvatar () = + let npcVariants = [ 0 .. 63 ] |> List.map (fun id -> npcVisualVariant (NpcId id)) |> Set.ofList + + Assert.AreEqual<int>(4, npcVariants.Count) + Assert.IsFalse(npcVariants.Contains StrawHat) + Assert.AreEqual<NpcVisualVariant>(StrawHat, (avatarSpriteSpec SouthFacing 0L).Variant) + + let variantXes = + npcVariants + |> Set.toList + |> List.map (fun variant -> + let rect = characterSourceRectangle { Variant = variant; Direction = SouthFacing; Frame = FrameOne } + rect.X) + |> Set.ofList + Assert.AreEqual<int>(4, variantXes.Count) + Assert.AreEqual<int>(1280, VillageArt.characterAtlasWidth) + + [<TestMethod>] member _.ChineseCopyProvidesFormalSceneTimeMenuAndStatusLabels () = let labels = [ sceneLabel VillageScene diff --git a/src/LivingVillage.Desktop/Assets/jiangnan-characters.png b/src/LivingVillage.Desktop/Assets/jiangnan-characters.png Binary files differindex ffe6f66..cbbe570 100644 --- a/src/LivingVillage.Desktop/Assets/jiangnan-characters.png +++ b/src/LivingVillage.Desktop/Assets/jiangnan-characters.png diff --git a/src/LivingVillage.Desktop/VillageArt.fs b/src/LivingVillage.Desktop/VillageArt.fs index 151c73a..3b948e5 100644 --- a/src/LivingVillage.Desktop/VillageArt.fs +++ b/src/LivingVillage.Desktop/VillageArt.fs @@ -72,6 +72,7 @@ module VillageArt = | IndigoRobe | OchreVest | JadeSash + | GreyCap | StrawHat type FacingDirection = @@ -239,10 +240,11 @@ module VillageArt = if remainder < 0 then remainder + divisor else remainder let npcVisualVariant (NpcId npcId) : NpcVisualVariant = - match positiveModulo 3 npcId with + match positiveModulo 4 npcId with | 0 -> IndigoRobe | 1 -> OchreVest - | _ -> JadeSash + | 2 -> JadeSash + | _ -> GreyCap let private positiveModulo64 divisor value = let remainder = value % divisor @@ -289,7 +291,8 @@ module VillageArt = | IndigoRobe -> 0 | OchreVest -> 1 | JadeSash -> 2 - | StrawHat -> 3 + | GreyCap -> 3 + | StrawHat -> 4 let directionIndex = match spec.Direction with | NorthFacing -> 0 @@ -317,7 +320,7 @@ module VillageArt = let worldTileCount = 21 let worldAtlasWidth = Sim.tilePixels * worldTileCount let worldAtlasHeight = Sim.tilePixels - let characterAtlasWidth = 32 * 4 * 4 * 2 + let characterAtlasWidth = 32 * 5 * 4 * 2 let characterAtlasHeight = 48 let interiorAtlasWidth = 392 let interiorAtlasHeight = 96 |
