From 7f0c40dc89672d218f10ba3f81a0ee235da30969 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 11:15:49 +0800 Subject: feat(desktop): 村民五套服饰帽饰区分 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 人物图集扩至五套变体(1280x48):靛蓝袍配布巾、褐衫配发髻马甲、翠衫配发簪红巾、灰袍配瓜皮帽,主角专属斗笠独立第五套;村民按 id 取模四种服饰轮转,永不与主角同装,四向两帧动画保持。 --- src/LivingVillage.Desktop/VillageArt.fs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/LivingVillage.Desktop/VillageArt.fs') 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 -- cgit v1.2.3