From 2b1adf1028c1bd3db2541a836284bc7598219e3f Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 12 Mar 2021 01:20:05 +0100 Subject: [PATCH] Add new npcs --- .../items/npc_weapons/axe/oni_blue_axe.ron | 18 + .../npc_weapons/hammer/oni_red_hammer.ron | 18 + assets/common/npc_names.ron | 38 +- .../voxel/biped_large_central_manifest.ron | 104 ++++ .../voxel/biped_large_lateral_manifest.ron | 136 +++++ .../voxygen/voxel/biped_weapon_manifest.ron | 8 + .../voxel/bird_medium_central_manifest.ron | 12 +- .../voxel/bird_medium_lateral_manifest.ron | 16 +- .../voxel/fish_medium_central_manifest.ron | 44 ++ .../voxel/fish_medium_lateral_manifest.ron | 20 + .../voxygen/voxel/npc/chicken/female/head.vox | Bin 1224 -> 1344 bytes .../voxel/npc/chicken/female/leg_r.vox | Bin 1128 -> 1212 bytes .../voxygen/voxel/npc/chicken/female/tail.vox | Bin 1156 -> 1224 bytes .../voxel/npc/chicken/female/torso.vox | Bin 1576 -> 1976 bytes .../voxygen/voxel/npc/chicken/female/wing.vox | Bin 1144 -> 1168 bytes .../voxygen/voxel/npc/chicken/male/head.vox | Bin 1232 -> 1396 bytes .../voxygen/voxel/npc/chicken/male/leg_r.vox | Bin 1128 -> 1212 bytes .../voxygen/voxel/npc/chicken/male/tail.vox | Bin 1176 -> 1348 bytes .../voxygen/voxel/npc/chicken/male/torso.vox | Bin 1576 -> 2036 bytes .../voxygen/voxel/npc/chicken/male/wing.vox | Bin 1144 -> 1168 bytes .../voxel/npc/dreadhorn/male/foot_br.vox | Bin 0 -> 1988 bytes .../voxel/npc/dreadhorn/male/foot_fr.vox | Bin 0 -> 2556 bytes .../voxygen/voxel/npc/dreadhorn/male/head.vox | Bin 0 -> 9712 bytes .../voxygen/voxel/npc/dreadhorn/male/jaw.vox | Bin 0 -> 1840 bytes .../voxel/npc/dreadhorn/male/leg_br.vox | Bin 0 -> 2860 bytes .../voxel/npc/dreadhorn/male/leg_fr.vox | Bin 0 -> 3292 bytes .../voxygen/voxel/npc/dreadhorn/male/neck.vox | Bin 0 -> 4716 bytes .../voxygen/voxel/npc/dreadhorn/male/tail.vox | Bin 0 -> 1500 bytes .../voxel/npc/dreadhorn/male/torso_back.vox | Bin 0 -> 12204 bytes .../voxel/npc/dreadhorn/male/torso_front.vox | Bin 0 -> 17552 bytes assets/voxygen/voxel/npc/goat/male/chest.vox | Bin 0 -> 2696 bytes .../voxygen/voxel/npc/goat/male/foot_br.vox | Bin 0 -> 1232 bytes .../voxygen/voxel/npc/goat/male/foot_fr.vox | Bin 0 -> 1208 bytes assets/voxygen/voxel/npc/goat/male/head.vox | Bin 0 -> 1824 bytes assets/voxygen/voxel/npc/goat/male/tail.vox | Bin 0 -> 1144 bytes .../voxel/npc/icepike/male/chest_back.vox | Bin 0 -> 1252 bytes .../voxel/npc/icepike/male/chest_front.vox | Bin 0 -> 1948 bytes .../voxygen/voxel/npc/icepike/male/fin_r.vox | Bin 0 -> 1196 bytes .../voxygen/voxel/npc/icepike/male/head.vox | Bin 0 -> 1748 bytes assets/voxygen/voxel/npc/icepike/male/jaw.vox | Bin 0 -> 1216 bytes .../voxygen/voxel/npc/icepike/male/tail.vox | Bin 0 -> 1280 bytes .../voxygen/voxel/npc/moose/female/ears.vox | Bin 0 -> 1216 bytes .../voxel/npc/moose/female/foot_bl.vox | Bin 0 -> 1448 bytes .../voxel/npc/moose/female/foot_br.vox | Bin 0 -> 1448 bytes .../voxel/npc/moose/female/foot_fl.vox | Bin 0 -> 1540 bytes .../voxel/npc/moose/female/foot_fr.vox | Bin 0 -> 1540 bytes .../voxygen/voxel/npc/moose/female/head.vox | Bin 0 -> 3256 bytes assets/voxygen/voxel/npc/moose/female/jaw.vox | Bin 0 -> 1264 bytes .../voxygen/voxel/npc/moose/female/leg_bl.vox | Bin 0 -> 2496 bytes .../voxygen/voxel/npc/moose/female/leg_br.vox | Bin 0 -> 2496 bytes .../voxygen/voxel/npc/moose/female/leg_fl.vox | Bin 0 -> 2324 bytes .../voxygen/voxel/npc/moose/female/leg_fr.vox | Bin 0 -> 2324 bytes .../voxygen/voxel/npc/moose/female/neck.vox | Bin 0 -> 5680 bytes .../voxygen/voxel/npc/moose/female/tail.vox | Bin 0 -> 1256 bytes .../voxel/npc/moose/female/torso_back.vox | Bin 0 -> 8456 bytes .../voxel/npc/moose/female/torso_front.vox | Bin 0 -> 7640 bytes assets/voxygen/voxel/npc/moose/male/ears.vox | Bin 0 -> 1192 bytes .../voxygen/voxel/npc/moose/male/foot_br.vox | Bin 0 -> 1448 bytes .../voxygen/voxel/npc/moose/male/foot_fr.vox | Bin 0 -> 1540 bytes assets/voxygen/voxel/npc/moose/male/head.vox | Bin 0 -> 4080 bytes assets/voxygen/voxel/npc/moose/male/jaw.vox | Bin 0 -> 1264 bytes .../voxygen/voxel/npc/moose/male/leg_br.vox | Bin 0 -> 2496 bytes .../voxygen/voxel/npc/moose/male/leg_fr.vox | Bin 0 -> 2324 bytes assets/voxygen/voxel/npc/moose/male/neck.vox | Bin 0 -> 5680 bytes assets/voxygen/voxel/npc/moose/male/tail.vox | Bin 0 -> 1256 bytes .../voxel/npc/moose/male/torso_back.vox | Bin 0 -> 8456 bytes .../voxel/npc/moose/male/torso_front.vox | Bin 0 -> 7640 bytes .../voxel/npc/ntouka/male/chest_back.vox | Bin 0 -> 5632 bytes .../voxel/npc/ntouka/male/chest_front.vox | Bin 0 -> 5820 bytes .../voxygen/voxel/npc/ntouka/male/foot_l.vox | Bin 0 -> 2620 bytes .../voxygen/voxel/npc/ntouka/male/foot_r.vox | Bin 0 -> 2620 bytes .../voxygen/voxel/npc/ntouka/male/hand_l.vox | Bin 0 -> 1320 bytes .../voxygen/voxel/npc/ntouka/male/hand_r.vox | Bin 0 -> 1320 bytes assets/voxygen/voxel/npc/ntouka/male/head.vox | Bin 0 -> 4548 bytes assets/voxygen/voxel/npc/ntouka/male/jaw.vox | Bin 0 -> 2312 bytes .../voxygen/voxel/npc/ntouka/male/leg_l.vox | Bin 0 -> 2096 bytes .../voxygen/voxel/npc/ntouka/male/leg_r.vox | Bin 0 -> 2096 bytes assets/voxygen/voxel/npc/ntouka/male/neck.vox | Bin 0 -> 1888 bytes .../voxel/npc/ntouka/male/tail_back.vox | Bin 0 -> 2404 bytes .../voxel/npc/ntouka/male/tail_front.vox | Bin 0 -> 2460 bytes .../voxel/npc/oni_blue/male/foot_l.vox | Bin 0 -> 2060 bytes .../voxel/npc/oni_blue/male/foot_r.vox | Bin 0 -> 2060 bytes .../voxel/npc/oni_blue/male/hand_l.vox | Bin 0 -> 2736 bytes .../voxel/npc/oni_blue/male/hand_r.vox | Bin 0 -> 2736 bytes .../voxygen/voxel/npc/oni_blue/male/head.vox | Bin 0 -> 3224 bytes .../voxygen/voxel/npc/oni_blue/male/jaw.vox | Bin 0 -> 1932 bytes .../voxygen/voxel/npc/oni_blue/male/leg_l.vox | Bin 0 -> 1676 bytes .../voxygen/voxel/npc/oni_blue/male/leg_r.vox | Bin 0 -> 1676 bytes .../voxel/npc/oni_blue/male/main_hand.vox | Bin 0 -> 2236 bytes .../voxel/npc/oni_blue/male/shoulder_l.vox | Bin 0 -> 2320 bytes .../voxel/npc/oni_blue/male/shoulder_r.vox | Bin 0 -> 2320 bytes .../voxel/npc/oni_blue/male/torso_lower.vox | Bin 0 -> 3964 bytes .../voxel/npc/oni_blue/male/torso_upper.vox | Bin 0 -> 14260 bytes .../voxygen/voxel/npc/oni_red/male/foot_l.vox | Bin 0 -> 2060 bytes .../voxygen/voxel/npc/oni_red/male/foot_r.vox | Bin 0 -> 2060 bytes .../voxygen/voxel/npc/oni_red/male/hand_l.vox | Bin 0 -> 2736 bytes .../voxygen/voxel/npc/oni_red/male/hand_r.vox | Bin 0 -> 2736 bytes .../voxygen/voxel/npc/oni_red/male/head.vox | Bin 0 -> 3452 bytes assets/voxygen/voxel/npc/oni_red/male/jaw.vox | Bin 0 -> 1760 bytes .../voxygen/voxel/npc/oni_red/male/leg_l.vox | Bin 0 -> 1676 bytes .../voxygen/voxel/npc/oni_red/male/leg_r.vox | Bin 0 -> 1676 bytes .../voxel/npc/oni_red/male/main_hand.vox | Bin 0 -> 3260 bytes .../voxel/npc/oni_red/male/shoulder_l.vox | Bin 0 -> 2320 bytes .../voxel/npc/oni_red/male/shoulder_r.vox | Bin 0 -> 2320 bytes .../voxel/npc/oni_red/male/torso_lower.vox | Bin 0 -> 3964 bytes .../voxel/npc/oni_red/male/torso_upper.vox | Bin 0 -> 14260 bytes .../voxel/npc/raptor_snow/male/hand_r.vox | Bin 1616 -> 1616 bytes .../voxel/npc/raptor_snow/male/head.vox | Bin 1596 -> 1596 bytes .../voxel/npc/raptor_snow/male/tail_back.vox | Bin 2012 -> 2012 bytes .../voxel/npc/raptor_snow/male/tail_front.vox | Bin 1872 -> 1872 bytes .../voxel/npc/raptor_wood/male/hand_r.vox | Bin 1684 -> 1684 bytes .../voxel/npc/raptor_wood/male/head.vox | Bin 1996 -> 1996 bytes .../voxel/npc/raptor_wood/male/tail_back.vox | Bin 2188 -> 2188 bytes .../voxel/npc/raptor_wood/male/tail_front.vox | Bin 2040 -> 2040 bytes .../voxel/npc/snowleopard/male/ears.vox | Bin 0 -> 1152 bytes .../voxel/npc/snowleopard/male/foot_br.vox | Bin 0 -> 1412 bytes .../voxel/npc/snowleopard/male/foot_fr.vox | Bin 0 -> 1436 bytes .../voxel/npc/snowleopard/male/head.vox | Bin 0 -> 2708 bytes .../voxel/npc/snowleopard/male/jaw.vox | Bin 0 -> 1288 bytes .../voxel/npc/snowleopard/male/leg_br.vox | Bin 0 -> 1636 bytes .../voxel/npc/snowleopard/male/leg_fr.vox | Bin 0 -> 1664 bytes .../voxel/npc/snowleopard/male/neck.vox | Bin 0 -> 1912 bytes .../voxel/npc/snowleopard/male/tail.vox | Bin 0 -> 2220 bytes .../voxel/npc/snowleopard/male/torso_back.vox | Bin 0 -> 4412 bytes .../npc/snowleopard/male/torso_front.vox | Bin 0 -> 5432 bytes .../voxygen/voxel/npc/squirrel/male/chest.vox | Bin 1592 -> 1592 bytes .../voxel/npc/squirrel/male/foot_br.vox | Bin 1228 -> 1228 bytes .../voxel/npc/squirrel/male/foot_fr.vox | Bin 1164 -> 1164 bytes .../voxygen/voxel/npc/squirrel/male/head.vox | Bin 1504 -> 1504 bytes .../voxygen/voxel/npc/squirrel/male/tail.vox | Bin 1568 -> 1568 bytes .../voxel/npc/yale/male/chest_back.vox | Bin 0 -> 4552 bytes .../voxel/npc/yale/male/chest_front.vox | Bin 0 -> 3552 bytes assets/voxygen/voxel/npc/yale/male/foot_l.vox | Bin 0 -> 1876 bytes assets/voxygen/voxel/npc/yale/male/foot_r.vox | Bin 0 -> 1876 bytes assets/voxygen/voxel/npc/yale/male/hand_l.vox | Bin 0 -> 1488 bytes assets/voxygen/voxel/npc/yale/male/hand_r.vox | Bin 0 -> 1488 bytes assets/voxygen/voxel/npc/yale/male/head.vox | Bin 0 -> 4840 bytes assets/voxygen/voxel/npc/yale/male/jaw.vox | Bin 0 -> 1388 bytes assets/voxygen/voxel/npc/yale/male/leg_l.vox | Bin 0 -> 2036 bytes assets/voxygen/voxel/npc/yale/male/leg_r.vox | Bin 0 -> 2036 bytes assets/voxygen/voxel/npc/yale/male/neck.vox | Bin 0 -> 2496 bytes .../voxygen/voxel/npc/yale/male/tail_back.vox | Bin 0 -> 3168 bytes .../voxel/npc/yale/male/tail_front.vox | Bin 0 -> 1696 bytes .../quadruped_medium_central_manifest.ron | 180 +++++++ .../quadruped_medium_lateral_manifest.ron | 204 +++++++ .../quadruped_small_central_manifest.ron | 43 +- .../quadruped_small_lateral_manifest.ron | 52 +- .../voxel/theropod_central_manifest.ron | 120 +++++ .../voxel/theropod_lateral_manifest.ron | 104 ++++ .../voxel/weapon/axe/2haxe_oni_blue.vox | Bin 0 -> 2236 bytes .../voxel/weapon/hammer/2hhammer_oni_red.vox | Bin 0 -> 3260 bytes common/src/comp/agent.rs | 3 + common/src/comp/body.rs | 12 +- common/src/comp/body/biped_large.rs | 10 +- common/src/comp/body/fish_medium.rs | 5 +- common/src/comp/body/quadruped_medium.rs | 14 +- common/src/comp/body/quadruped_small.rs | 6 +- common/src/comp/body/theropod.rs | 10 +- common/src/comp/inventory/loadout_builder.rs | 21 +- common/src/states/utils.rs | 5 + voxygen/anim/src/biped_large/idle.rs | 12 +- voxygen/anim/src/biped_large/mod.rs | 26 + voxygen/anim/src/biped_large/run.rs | 12 +- voxygen/anim/src/biped_large/wield.rs | 24 +- voxygen/anim/src/bird_medium/feed.rs | 12 +- voxygen/anim/src/bird_medium/idle.rs | 16 +- voxygen/anim/src/bird_medium/mod.rs | 16 +- voxygen/anim/src/character/climb.rs | 12 +- voxygen/anim/src/dragon/idle.rs | 12 +- voxygen/anim/src/dyn_lib.rs | 2 +- voxygen/anim/src/fish_medium/idle.rs | 1 + voxygen/anim/src/fish_medium/mod.rs | 8 + voxygen/anim/src/golem/idle.rs | 12 +- voxygen/anim/src/quadruped_low/idle.rs | 12 +- voxygen/anim/src/quadruped_medium/feed.rs | 12 +- voxygen/anim/src/quadruped_medium/idle.rs | 24 +- voxygen/anim/src/quadruped_medium/mod.rs | 54 +- voxygen/anim/src/quadruped_medium/run.rs | 12 +- voxygen/anim/src/quadruped_small/feed.rs | 12 +- voxygen/anim/src/quadruped_small/idle.rs | 12 +- voxygen/anim/src/quadruped_small/mod.rs | 7 + voxygen/anim/src/theropod/idle.rs | 20 +- voxygen/anim/src/theropod/mod.rs | 22 + voxygen/src/ui/widgets/item_tooltip.rs | 508 ++++++++++++++++++ world/src/layer/mod.rs | 4 + world/src/layer/wildlife.rs | 85 ++- world/src/site/settlement/mod.rs | 5 +- 187 files changed, 2027 insertions(+), 130 deletions(-) create mode 100644 assets/common/items/npc_weapons/axe/oni_blue_axe.ron create mode 100644 assets/common/items/npc_weapons/hammer/oni_red_hammer.ron create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/head.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/neck.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/dreadhorn/male/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/goat/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/goat/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/goat/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/goat/male/head.vox create mode 100644 assets/voxygen/voxel/npc/goat/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/icepike/male/chest_back.vox create mode 100644 assets/voxygen/voxel/npc/icepike/male/chest_front.vox create mode 100644 assets/voxygen/voxel/npc/icepike/male/fin_r.vox create mode 100644 assets/voxygen/voxel/npc/icepike/male/head.vox create mode 100644 assets/voxygen/voxel/npc/icepike/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/icepike/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/ears.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/head.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/neck.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/tail.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/moose/female/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/ears.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/head.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/neck.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/moose/male/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/chest_back.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/chest_front.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/head.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/neck.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/tail_back.vox create mode 100644 assets/voxygen/voxel/npc/ntouka/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/head.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/main_hand.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/shoulder_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/shoulder_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/torso_lower.vox create mode 100644 assets/voxygen/voxel/npc/oni_blue/male/torso_upper.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/head.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/main_hand.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/shoulder_l.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/shoulder_r.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/torso_lower.vox create mode 100644 assets/voxygen/voxel/npc/oni_red/male/torso_upper.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/ears.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/head.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/neck.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/snowleopard/male/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/chest_back.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/chest_front.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/foot_l.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/foot_r.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/hand_l.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/hand_r.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/head.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/leg_l.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/leg_r.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/neck.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/tail_back.vox create mode 100644 assets/voxygen/voxel/npc/yale/male/tail_front.vox create mode 100644 assets/voxygen/voxel/weapon/axe/2haxe_oni_blue.vox create mode 100644 assets/voxygen/voxel/weapon/hammer/2hhammer_oni_red.vox create mode 100644 voxygen/src/ui/widgets/item_tooltip.rs diff --git a/assets/common/items/npc_weapons/axe/oni_blue_axe.ron b/assets/common/items/npc_weapons/axe/oni_blue_axe.ron new file mode 100644 index 0000000000..7e8b7d1c0b --- /dev/null +++ b/assets/common/items/npc_weapons/axe/oni_blue_axe.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Blue Oni Axe", + description: "Placeholder", + kind: Tool(( + kind: AxeSimple, + hands: Two, + stats: Direct(( + equip_time_secs: 0.5, + power: 1.6, + poise_strength: 1.0, + speed: 1.1, + crit_chance: 0.18, + crit_mult: 2.8, + )), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/items/npc_weapons/hammer/oni_red_hammer.ron b/assets/common/items/npc_weapons/hammer/oni_red_hammer.ron new file mode 100644 index 0000000000..70cfd36888 --- /dev/null +++ b/assets/common/items/npc_weapons/hammer/oni_red_hammer.ron @@ -0,0 +1,18 @@ +ItemDef( + name: "Red Oni Hammer", + description: "Placeholder", + kind: Tool(( + kind: HammerSimple, + hands: Two, + stats: Direct(( + equip_time_secs: 0.5, + power: 1.0, + poise_strength: 1.0, + speed: 1.0, + crit_chance: 0.1, + crit_mult: 2.0, + )), + )), + quality: Low, + tags: [], +) \ No newline at end of file diff --git a/assets/common/npc_names.ron b/assets/common/npc_names.ron index d8cda5f0bc..49ceb5c023 100644 --- a/assets/common/npc_names.ron +++ b/assets/common/npc_names.ron @@ -534,6 +534,18 @@ bear: ( keyword: "bear", generic: "Bear" + ), + dreadhorn: ( + keyword: "dreadhorn", + generic: "Dreadhorn" + ), + moose: ( + keyword: "moose", + generic: "Moose" + ), + snowleopard: ( + keyword: "snowleopard", + generic: "Snow Leopard" ) ) ), @@ -749,6 +761,10 @@ dog: ( keyword: "dog", generic: "Dog" + ), + goat: ( + keyword: "goat", + generic: "Goat" ) ) ), @@ -857,7 +873,15 @@ harvester: ( keyword: "harvester", generic: "Harvester" - ) + ), + oni_blue: ( + keyword: "oni_blue", + generic: "Blue Oni" + ), + oni_red: ( + keyword: "oni_red", + generic: "Red Oni" + ), ) ), golem: ( @@ -913,6 +937,14 @@ sunlizard: ( keyword: "sunlizard", generic: "Sun Lizard" + ), + yale: ( + keyword: "yale", + generic: "Yale" + ), + ntouka: ( + keyword: "ntouka", + generic: "Ntouka" ) ) ), @@ -1016,6 +1048,10 @@ marlin: ( keyword: "marlin", generic: "Marlin" + ), + icepike: ( + keyword: "icepike", + generic: "Icepike" ) ) ), diff --git a/assets/voxygen/voxel/biped_large_central_manifest.ron b/assets/voxygen/voxel/biped_large_central_manifest.ron index fda5200e91..02d09ecbab 100644 --- a/assets/voxygen/voxel/biped_large_central_manifest.ron +++ b/assets/voxygen/voxel/biped_large_central_manifest.ron @@ -728,4 +728,108 @@ central: ("armor.empty"), ) ), + (Blueoni, Male): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_blue.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_blue.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_blue.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_blue.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Blueoni, Female): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_blue.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_blue.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_blue.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_blue.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Redoni, Male): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_red.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_red.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_red.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_red.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), + (Redoni, Female): ( + head: ( + offset: (-7.5, -1.0, -9.0), + central: ("npc.oni_red.male.head"), + ), + torso_upper: ( + offset: (-8.5, -12.0, -10.0), + central: ("npc.oni_red.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.5, -5.5, -13.0), + central: ("npc.oni_red.male.torso_lower"), + ), + jaw: ( + offset: (-5.5, 0.0, -8.0), + central: ("npc.oni_red.male.jaw"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + second: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index 947200d5c3..ff75e8d3a1 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -951,4 +951,140 @@ lateral: ("npc.harvester.male.foot_r"), ) ), + (Blueoni, Male): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_r"), + ) + ), + (Blueoni, Female): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_blue.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_blue.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_blue.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_blue.male.foot_r"), + ) + ), + (Redoni, Male): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_r"), + ) + ), + (Redoni, Female): ( + shoulder_l: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-4.0, -4.5, -5.0), + lateral: ("npc.oni_red.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_l"), + ), + hand_r: ( + offset: (-4.5, -4.0, -12.0), + lateral: ("npc.oni_red.male.hand_r"), + ), + leg_l: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_l"), + ), + leg_r: ( + offset: (-2.5, -4.0, -3.5), + lateral: ("npc.oni_red.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.oni_red.male.foot_r"), + ) + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/biped_weapon_manifest.ron b/assets/voxygen/voxel/biped_weapon_manifest.ron index 78a5dfd0c8..7bfd156e52 100644 --- a/assets/voxygen/voxel/biped_weapon_manifest.ron +++ b/assets/voxygen/voxel/biped_weapon_manifest.ron @@ -989,6 +989,14 @@ vox_spec: ("weapon.hammer.2hhammer_harvester", (-1.5, -7.5, -6.0)), color: None ), + "common.items.npc_weapons.axe.oni_blue_axe": ( + vox_spec: ("weapon.axe.2haxe_oni_blue", (-1.5, -2.0, -12.0)), + color: None + ), + "common.items.npc_weapons.hammer.oni_red_hammer": ( + vox_spec: ("weapon.hammer.2hhammer_oni_red", (-3.0, -4.5, -12.0)), + color: None + ), //BIPEDSMALL "common.items.npc_weapons.biped_small.adlet.adlet_bow": ( vox_spec: ("weapon.biped_small.bow.adlet", (-1.5, -3.0, -5.0)), diff --git a/assets/voxygen/voxel/bird_medium_central_manifest.ron b/assets/voxygen/voxel/bird_medium_central_manifest.ron index ee00459527..57d03ecfe1 100644 --- a/assets/voxygen/voxel/bird_medium_central_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_central_manifest.ron @@ -29,29 +29,29 @@ ), (Chicken, Male): ( head: ( - offset: (-1.5, -2.0, -3.5), + offset: (-1.5, -3.0, -3.0), central: ("npc.chicken.male.head"), ), torso: ( - offset: (-2.5, -3.0, -2.0), + offset: (-2.5, -4.5, -3.5), central: ("npc.chicken.male.torso"), ), tail: ( - offset: (-1.5, -2.5, -3.5), + offset: (-1.5, -2.0, -3.0), central: ("npc.chicken.male.tail"), ) ), (Chicken, Female): ( head: ( - offset: (-1.5, -2.0, -2.5), + offset: (-1.5, -3.0, -4.0), central: ("npc.chicken.female.head"), ), torso: ( - offset: (-2.5, -3.0, -2.0), + offset: (-2.5, -5.0, -3.5), central: ("npc.chicken.female.torso"), ), tail: ( - offset: (-1.5, -0.5, -2.5), + offset: (-1.5, -3.5, -3.5), central: ("npc.chicken.female.tail"), ) ), diff --git a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron index dc2287da5f..2bcb349b14 100644 --- a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron @@ -37,37 +37,37 @@ ), (Chicken, Male): ( wing_l: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -2.5, -4.0), lateral: ("npc.chicken.male.wing"), ), wing_r: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -2.5, -4.0), lateral: ("npc.chicken.male.wing"), ), foot_l: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.chicken.male.leg_r"), ), foot_r: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.chicken.male.leg_r"), ) ), (Chicken, Female): ( wing_l: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -2.5, -4.0), lateral: ("npc.chicken.female.wing"), ), wing_r: ( - offset: (-0.5, -2.5, -3.0), + offset: (-0.5, -2.5, -4.0), lateral: ("npc.chicken.female.wing"), ), foot_l: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.chicken.female.leg_r"), ), foot_r: ( - offset: (-1.0, 0.0, -4.0), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.chicken.female.leg_r"), ) ), diff --git a/assets/voxygen/voxel/fish_medium_central_manifest.ron b/assets/voxygen/voxel/fish_medium_central_manifest.ron index bba6d4e700..cbdc61eb27 100644 --- a/assets/voxygen/voxel/fish_medium_central_manifest.ron +++ b/assets/voxygen/voxel/fish_medium_central_manifest.ron @@ -43,4 +43,48 @@ central: ("npc.marlin.male.tail"), ), ), + (Icepike, Male): ( + head: ( + offset: (-2.5, 0.0, -6.0), + central: ("npc.icepike.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -4.0), + central: ("npc.icepike.male.jaw"), + ), + chest_front: ( + offset: (-2.5, -4.0, -7.0), + central: ("npc.icepike.male.chest_front"), + ), + chest_back: ( + offset: (-1.5, -1.5, -3.0), + central: ("npc.icepike.male.chest_back"), + ), + tail: ( + offset: (-0.5, -10.0, -4.5), + central: ("npc.icepike.male.tail"), + ), + ), + (Icepike, Female): ( + head: ( + offset: (-2.5, 0.0, -6.0), + central: ("npc.icepike.male.head"), + ), + jaw: ( + offset: (-1.5, 0.0, -4.0), + central: ("npc.icepike.male.jaw"), + ), + chest_front: ( + offset: (-2.5, -4.0, -7.0), + central: ("npc.icepike.male.chest_front"), + ), + chest_back: ( + offset: (-1.5, -1.5, -3.0), + central: ("npc.icepike.male.chest_back"), + ), + tail: ( + offset: (-0.5, -10.0, -4.5), + central: ("npc.icepike.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/fish_medium_lateral_manifest.ron b/assets/voxygen/voxel/fish_medium_lateral_manifest.ron index 4d8bfcbdab..d53de2e4a2 100644 --- a/assets/voxygen/voxel/fish_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/fish_medium_lateral_manifest.ron @@ -19,4 +19,24 @@ lateral: ("npc.marlin.male.fin_r"), ), ), + (Icepike, Male): ( + fin_l: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + fin_r: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + ), + (Icepike, Female): ( + fin_l: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + fin_r: ( + offset: (-1.0, -7.0, -3.0), + lateral: ("npc.icepike.male.fin_r"), + ), + ), }) diff --git a/assets/voxygen/voxel/npc/chicken/female/head.vox b/assets/voxygen/voxel/npc/chicken/female/head.vox index bd4f5d0f5a6c33cfa92f2f1efbfb16d46cc12d74..5b47bc3f2029fecdb0f77849db3bd82a9dfe54a0 100644 GIT binary patch delta 431 zcmWlRy-Nd85X5(O-#ep-cti`a5d{mevQQhvkKA33U@U~7fmGt3AXq4N*20OMSXwB8 zSP3Gr5j)G2xlXW5V3)SFV38oI5iRC;)BqcfO zvmj-2@|+qH_XXGS>SUJGF7(_CN7=Uf(ltRx-LY9+94ZeZM2^cOSHO zbF5#Nhx&HbRDD`2zOhsNYI*G)P3YT7tc~e0U6>p%GES<9N0nx$bbhs=(e{$IP8-j+ YJPe8BxVV>G27^KID>;8qvE?rQ0mScEz5oCK delta 295 zcmW+vu}T9`5S*F!1mnrwfrY7#!&H`ntq_Yqu1Ev}5@TU0*jS{ovk`ybiC}4^g$NQ0 zu}Z)~Td@_c@jIS-E(|*}JG(ny`Dk4n?2XGC0E69XXbmqO7*&(rY9p+i!7MBp#)p&Y z(t1;+fkI8kKIv=1*P^C$>f2ySxm0wSqzrNyjnlZ`a)}vCL)yt`2C0-{E?9uf?Q|+T zVDEE?DIv==b6YeHHXhU2HkaA?1>*HN;!{9e+#`NIo9-gs^$=h85r0k)jx`96t{vXh oU0Xby#w1B%S(g9U+T56}yB1wh6rtlQcRT+IXTH++QF!xLf6Xj5od5s; diff --git a/assets/voxygen/voxel/npc/chicken/female/leg_r.vox b/assets/voxygen/voxel/npc/chicken/female/leg_r.vox index f6eb2ca4276e9e3c4567beb9a291b7f483c0b3f5..cf7616b4d712113ceaa1c0740051669b1a5ee7cf 100644 GIT binary patch delta 298 zcmWlTJxc>Y5QgXDE+i1dC0a-jM8U#N8*RiBFL1|^SO`Z9cH&PEQYd!X3M*P!Yav3g zm7q=9lqm%p#q$2Z`0l{7&%85J>~H0K uY-4fW|8S?pu4%NoWa~SH)eg3-yeQuGq`~T(^M&SGRh56xTqfkd_4*&1heaR& delta 197 zcmdnP`GO-R%s)b58Uq7^ucN0QkYWg7VPFXMjB@1xae#mch?$`{A~MQT1tbUr91zNb zk&(fJkqL+y7(5t&Y@h}Y1_nkTX7bp$frC-`DFeg*DHRO=*G*>le{ea&|C1Ymda_B@@+=n$r{WOlO32Ggb%LB`p?bH{a-;r0gMebl{Qai;$&o&lare~ XpV^an=7CF-Uo(3$U5TD-#?l4=G5<1+ diff --git a/assets/voxygen/voxel/npc/chicken/female/tail.vox b/assets/voxygen/voxel/npc/chicken/female/tail.vox index 2ff524f702c4f2807312b1445a06c98394f5bc19..ffec4dddd1c2f4b79cd65ec3d4156eddfc60e944 100644 GIT binary patch delta 295 zcmWlRF-yZ>5Qgu)ONs#zKcYi%DGCmbF1k2~UlK!T-9pt-#9ttEP+W?$@`;<1gNq2I z&P5k->)6rVF+afbdhqZ*cQ4#9`A%GY)bBhJQFp)WSz|lr!Mj+)7W3oS6$U*c@VxC0DC};$P>hRX=g<2 ziNv!dTM|VX8>7JjHh#mQJ`70T0_o=q>CeZj&YmuHdUvLi>z?XpFFd20PU~1_=PNqd xaaye{>DKCU5YAG#MWyw&ZthmvI@s3wsv4hi0&&iT3n`^(nlP406!2jF|Y_QGO+M5 zF)#zUAT~1}0}wMYF!3=0F%tu$07xlNKTw`gfCY*tmy-QTZtY!~ZE24FA_n zX83<_Im7>x8-aWWhW`s)8UF7GV)%bIoni8GM&HRM%o3A*m>h%;uE_e&&CUH^K|ukG m4KQWOOwAddrnqhVVUg0(gFbL$}o`t diff --git a/assets/voxygen/voxel/npc/chicken/female/torso.vox b/assets/voxygen/voxel/npc/chicken/female/torso.vox index 817f167fee246f9b422036040f875c87d37cea8d..b236c1276dd502c510a8ac1196ecf3cfadf8f0ad 100644 GIT binary patch delta 1061 zcmW-fKWkM%5XI-;?tQ_aKB9$aAqp0jT4-Y--o4Kd5(^>3wBk2VuuxuSEj+ce5g`^L zNE)l4jcv*_g1uj2{Y@?$cJIv2%$YOuW&Ovw z1ObdP#3b01gkGb021bmkBpYuC9QW}_8i@hLtlI(g0iBnmOexRZ;V zMn0V_F=%Oq(~32-XcB3o2zDRpXhU6Sp0m4VG=7q!sLMY^d zl0`-_V#pEXh#CtIl*~6Mtj3s7z%|v8aTyeFr!Y=43eb7bRbUHjk;#~IWKgM-(YZ1n z%Mmdu1A0oLER>EcF%;B6m3-$A41B0BANvKLa8EJaF$)9BoD$>>&)S=dsi zdnd@knx`7b9J#D4oTNhdoMjBg=(#s6oH={Ms4TL33iDo5Ve`pzOc|RsP&95cSAm^b z1|cWx|XWq9ipY1mzhyf~5Lkqxa&>uzBgFO8%SgD@IAa^(njYU8;$tU?lNaTf(au)zq zBLK>%0Icrr&BFjkb1gt5jO`3DN6di+cZetAiAW+Y#D$0i7f!$lI1!7qnj50z-B~o~ z-x*E7`8BBk4iuRLl0Y(5w0wuO80N%hCPYtBbK-ug5e^clGqi;q`}d&$ZcX<}a&HbKlGP+1~sAbqqLY diff --git a/assets/voxygen/voxel/npc/chicken/female/wing.vox b/assets/voxygen/voxel/npc/chicken/female/wing.vox index 3581a51950aae23de055188546af7ee7ff5aaf98..9153231a225797c928da0ba25787a73a4113fa67 100644 GIT binary patch delta 238 zcmWlQAxr~d4256YyJbrj!q0(NX2?hoNDLSRVRz$lY;%_ZW(mPzNf5)LM}7hdJwr$q z{K5=&auSa`v$@i1(thoGuj}f#=JNhv_Z2|*H0>EMdUnyUVoP8>xV%a)O4Vws983vV z+7O8$)B$shfIA>=BQ%Dl2`31Qfmjyik!6e^`zvoG)4M9|{rPi!d4PU;=zIeG{r=G9 z`@Js4H#&RlsZLM)8+D^a9_sRTTW3d3v*v~#>}>iK#Syu>qSes-<4h}OhnkPFuRhmE UoOAwKQYnhUPbB3Z_(Gok0S?eXA^-pY delta 198 zcmbQh`GZ3+%s)b58Uq7^ucN0QkYY%gC@Ac~3S=+?aYSU4rwK?D2zWpQ3!?x7Gb0}Z z3zGl?6Nt?K#6UJ9P>hKIh?)2p7#R5(7=dg?CjN~r9E{3O85sUgsbKiOZZgCFgUcEI zpWF!KJ23oT=*sYaM-apRyXg#**E9M~{=+0OS%k?!_~44H|J>Z%{}mJzz}QezX>&Rg eCnK|*oZRGMW>4ms2QE$C&+N%`C3-R!OB(=6lQ1d( diff --git a/assets/voxygen/voxel/npc/chicken/male/head.vox b/assets/voxygen/voxel/npc/chicken/male/head.vox index d9c97f93c5e00917e6206c7feffddc7037689d83..24848901c5d576c0128d973e3f6e3bea0f896293 100644 GIT binary patch delta 553 zcmXX?J!@1!6uloalc5e<5LF zx-^2M5gQA!FeHub+6AlktWs_xi{15%IB>XU4)>h7cYd7teYW3TUY*<{qGt=OB@}w) ziC(nUnzeMnQDFQ(R$s2Q?s8Iza)2e29HeCDOIBZs)2|%#A*JdQL} zn{)?=>lYkcMUG2RDFl_gc6m&nu!kmEkaGnq%*o^(LekwKK*6<3$>)&)oxD`6+M%R7 z>9Ptq7bH@!2r>j*!Qn-&_&yq8W`{rzF$H)uCbNSXQ)A7Jr0LTZlmH$W4`F*5gBS3j z;@~SvLj&Xql}ZW;TnXy)$B!1s{rfy>G#b|H_3YQq&-%IHaA>2^$Z+BX{x&suzizv4 z$Ua4~;{&qt=%bzNzqY~lx*fhkTSyjru<51Uq>x?=ZdZ&?0d+6HZJ zCmWaSa6YsA`gyx^c_J=L^CD+8qnp?4RwK8tIBV@*9uH(C{^4n4ZEKcg@w2{@?-ZZ9 Onb4du%I9L=t^5V?Rfoa= delta 355 zcmW-ZJ4*vm5QWdoy;02C1uO*Pnt&h{5=4|VMkHboA5oHxvC_t zX*fvh4)Xe-o`YQHAy2E2&uuuznZ)VVwA5>}ag; u_x%o;k(667#rSwXBs&0^8g#d&VUo$D3+x5IZ@3>j*0nMr$PT-7toRS(V_Cca diff --git a/assets/voxygen/voxel/npc/chicken/male/leg_r.vox b/assets/voxygen/voxel/npc/chicken/male/leg_r.vox index cb8ec8f49da5c4c844f268bb7b11fe0a5ea09772..3284b90e76851c16b7a7f6f63ffdeed6c4518f6f 100644 GIT binary patch delta 350 zcmWlOJxD@f6o$_^-*=@*qDwy#5k*2s4WbP;1m3s^$|XZ0uSswR32JH*9E`?RD(6{p7WmfZ|Z&ex_Ve!?*YKUeyJ>iCk=2^su$u>kto3u zVnXetUTTS>tO|%w1cD+8MBtzThm>?3{m?-q2Z?+H6(FjB1SByjAC=soGXa5?QOl@( zBr%DV0G4c)k0=(9#ANy1Q)gx}nQ$0}Ea~P$T1s>#V_Eu(jYjMtuu`rKz toMB^`H+Mabxmm8ZJ(H)3>0rvdQAgRfZ9H{H-(Y@KI#x(CcsnMcEB~GUV=@2$ delta 248 zcmdnP`GO-R%s)b58Uq7^ucN0QkYWg7VPFXMjB@1xae#mch?$`{A~MQT1tbUr9AJ{k zgOQQJgOLe{85lemfNY=!51zL)_<=r0ghVYZJj)tVtM%lPUpmT;)KjY+b_6 z;x8YtlM8J481MnXgsmiGG6M@kU`#>~l4TeIgg-II#e>1QEjw(+P61AQK1#fEgN&8<*>Y-ELQVy`Ew< zI#09hzlZw!l=Q)qKHrhPw(hm_C)IZSP@Csl`u2F@A9*of`?;*wM@218=Jf6MSijCr z=xSj`qqTW$SDbc!jcIc^)M$E0zl;z2NhytTm{a;ZrE}jR4T=S=)FOW(JHEy9{$1)O X3`2iruH+y25t|Q6d8KH{f44gy^O<%y delta 299 zcmXYny)Q#y6vodv@7pVSnJNb2x-=nTkVZt)#TBXK4nB%V)r7&{kI`ZaSQ|f-?=U99D`Q$*@uX zv{{$eD&b0UwCS=SDMO@UA{|2u6(ebbgiRteKx8}FAF@5!&_oL*2FD;eodz)VLl&fz z;XDRzbg?1P^`T5g2Yiap*)IUOJO-&VNTUYw{%Cgqa#sX-S_1jp2Hv7v=6rKXsyj1s zyFV-6_q#Hh?dF;q;5P~~jfXvPT~~bHZ;=}rVp4k|X=2H1gc&1E<>@DJ=d#}o5l@1y(?@^}?wKu5I zIJCEjt!=P`R_RmvENO=vdo;*82+07<#hk``TCZ$?riIaI$yzgS#Tlf^2h##oo*SWI z>(q$)!U?UcLuIWX%~X5=!a|A2MS`$2vq0^w(t1w3kH%_igloyRhn!kjWirXuX=3%k zDx*^p(4>uK@5HtD%srW_D}7|0yz`Klsv$9P;v-ZDLM4+7V!G$d;YpXCeGaFR5krO5 z*d{6f_1+k}ay|fr9M+rh0p(>@~SfD8YEk>--K4)8KI{n(p*`Q1uC|t zVml%ZBCyP6iO_ToWLa z6)EGDxe)nIiKNbrEu)G;m6eq%+pU}nNh?lkNJOWxa>S6aTA|FsDTQeRUNW~9p$294 z7*-CPghKRz!{}@yVs1Ea2F?*%WggW>|M_SrZ0Hbef;JLwP*Gp8uR?ZaafxyUyE=1l z@&dF{bBNY#@ES{9!(apmUGt@_IoHl}4jqB8wKCQhatbV+_cas-6`}q5=8Y}!(?3`? zH#f`pv3+vp`1rV-oSYPX<9GJwg~O-!%aaFEejBB{d@kkhzkV%8KQGJS_uFOr-SzVN*$?H)g?GwlS3fAz&o7n3-BgagJzrj2pOoqQXUpZc z-yEN#eM=|nMLv43T-=~5GN|p(3qLm=0F_+0yuPmh-2qL1Vq*w!g^J6Frm;`;iwX6Yz}B@ z+KDRLfa`1wj=&f+dn?)&0pLr^Vd7& z{QOzF8lRVbiIkU9Df_LIgAY=^eB?fo@^)Ryr-_sw52WpGgVLI2``R%IQ<>*R*kH^_Y~k<5Di1XqT&f9}EWV_v)2> UyW2ipI9uH~S7dFueYddj4;5aF8UO$Q diff --git a/assets/voxygen/voxel/npc/chicken/male/wing.vox b/assets/voxygen/voxel/npc/chicken/male/wing.vox index 5da39e0340d845a2463426a922345b315dc78fe4..1eda3c6c9fd17357b7ac4b81c240460c57ca0068 100644 GIT binary patch delta 290 zcmWklJxfAS06q8KrxZzavk#)7NGPd6vcZO+LLB6k;*i=0`alAMpv9oU{)2MMrXYf7 ziB_kimS}TyY;+VFtnGB)f%6IHZ=^A*^V#BJ3&8$vI%5s>rVe{S8yw5x;Zb_eUo9qm zk-~#iCr~~`4N{ii$Qp$75Re4~L>bE8L;;Q}LBfNu9|vW?y7D``=K0RpU@+itIHX0h z{TAsyR(Nv-z8di38T@{KVekHu-A09->kRwt3v(ydWA%dsTh%0!vmy4M&bStt;Z}Ts z?sk;je1N^vDRvT??)*4crzgy>NQH$C5leGi-gFsE#+k3XCM$F1K}5}$Y$&a@Iaasw R6Xr+7f~gqcZkQD(_YWdEUr7J} delta 249 zcmbQh`GZ3+%s)b58Uq7^ucN0QkYY%gC@Ac~3S=+?aYSU4rwK?D2zWpQBU2~?BSRRF z5yrp-WHT`U`HZ0qEI>9hQ#eo)P>eC0fdwef%oskg#esY4q{RPQrx*M;-lqD&`;+YdPs?!rKR4U$ z|MR7p|FxCHCVys9oGilRAbfB|)_-np?*9r33SexgsWdsADUi!pis8SNEW>{b`N@Zv g)-lV;$xSY1p2~D3dNLP_K3jn4e+DbH$@VOP0PtQ)>i_@% diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/foot_br.vox b/assets/voxygen/voxel/npc/dreadhorn/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..aa0db7836e613554ef9f821fac6d502426db419d GIT binary patch literal 1988 zcmeH`&1;=i5XR@s`MP2jr9n!H!AtO_rV=WNO>E3(ZK@&fn}}^gnv_%wxlPpILWNtb z`JmPtF_A7}OoBqYC?SeaN;ZD2N*9ITDu|GU2)YrMf*{D_bBh0j;Dz6vIWu$S%$Ygw z$na=!O+@m(fguXH9YxLzjP=)~1%IAA^e?05#|9Q`vWona{({dXIATlUT_(;^Qg@a% z&BYU^nFO;WoQASBWJXC}U)N$StK7bV)+Yv|#3qi6x`N#wFt@Jqd(y#)Qmh zpfAuzJoP|g$i>9W7@r&U^b_ZoG&=65o@!1xqsy$M8UoK`9nqIGde#t1j(J?9je9L~ zI7+AV*}ye@Hsnr2W-Viw%h{MYN}KYey*}oS^=LunHIg7D^};h`-Ui~6-Oz59lzmZW z7HlxIQ;)i2*i+*P`>8=$v&l{Lnemj2HSCdLoMk^8d!$~OLrc!Z%<}GPm37e1o@w&4 zHf0Zm^@}5^w&de}Wj~!sz0=%!?t74jvtWNMV=ZIFvS-e7AA6MS%x^ebjW$=#UOjQd z616-#$+S1w0&C-W=}h)UW6En;D|_lab5UoU<2!K9X3pA71MlrQFV>=|2bMa|6vubM z-kO-=IUAGaY1u2*p^mlF#u_bsYJ8@gonrXUMOxtH}DQ^=KAVw5_u#8~RY662^7ON^&ZEHQyP zu}MZs;d(N`4WLx4#}h{;;X(xx2GPqj z7gOjr!0C%X!?R!D6jRDtj;@Y2-1zikJX&`MtD}Oq1_d2YKZOhJg0pRc!?m>-89IgQ z%kN`-bp;R0DCXwsaJ2L|1_w@}zpo1eYh7r(as&bgxi64g3aQpZUap0-d0dzkT;46? z>|N&H6P#mYbw_Yzy9v!rjlfrvxN~P1f1=FWa{a4d_e;SuN87Nx%|d?^{DI@Z-B$WK~GNwO-&Wl9p+r@1d7EX zN~IDuH#f1evVzssRm{)Nqg*ayXlMvsU0rByZpK(^8P~?&!TR(^xPAE+_CNU^`}_OY g+uOs|))qQDJ25skhMAd}2WvhlK8yePkMuzP0ihEC{Qv*} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/foot_fr.vox b/assets/voxygen/voxel/npc/dreadhorn/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..771d3ffc1b618b1c4cd35b634399a2bded92ed44 GIT binary patch literal 2556 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/jaw.vox b/assets/voxygen/voxel/npc/dreadhorn/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..b1f2f61058801b3340ef2e9d4528e64b55bc3ed1 GIT binary patch literal 1840 zcmeH_!E0Pq6vofF_uMyvS(FATDGg48FHI_$N@5cmGs#PB8i&w{*fyk-l8PbIL=7%f zm|{%`wGLt;U5qg^D71?bY7wMlW7SpZq7YmK5wa3=BV7uDAfMkG{3iq-{5bD^_ug~A zd(WAgoX&2D$eGbXkwFe+M9vmUV=d``Uqqhxm+1?o!ef`JBKJuMAs38z;zANM#6D;) zsKr5}Bsk+7G0SH zM=s|BG2)3M>SCj2)Qp-rjy1#mniF~w`VsmO`Vo5Zk!KE`YsCA*-Vya3M%}0zb)#<7 zO?~V%(t#PeUGirf#k!B5}#QUhryNK@_B`!mcE~;5N=cB|}BVkmImAdCV z8-w>H>ZgNdzr&AmpJC+TPo|Ltdp`{%DOq$&#{ha0V#`1C-j>gYmqHq#pqj?lI^60#J z1OkIR63A@_skTF2YlZX&TwD@d*(u}P1Lofqoaf5ww&3cWZuE3_0^iQz-n~iui861? z@o$2iuLUn0?Z?_38vR-D2aW>|-oQ)4gE)TdSriLnn3>|GKJ3K@uV2F_FWl24wjfh8qL8Qx!Dc!{UgSXo&?xm-rESVTUbM^8@=N_}Nq xpLrjf3!mbfE4Q)t`H$G!+r#eeF1EI|Ff=rTQmKT+#l_~BUB$NepZ~}k$Um3x?9%`M literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/leg_br.vox b/assets/voxygen/voxel/npc/dreadhorn/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..cafa9b360a19ee97cc735ba9a0f743fc3b3fef03 GIT binary patch literal 2860 zcmeH|&x@Z|6~@oK=iK*)&7w3&O))qG-_%q>C9#Q(nPgI%>X7%H5!;4zQc`iqG*Jf^ zDon8^gjxqNBVCL!Gbpr+5>gSQWK(~vN*9ITDu|GkpdjK>5CnPr-1#pAzwmH>zUMyY zoadbH*~N1+H_U80HNU`MAA7*;+4-f@yXt~p13m(JaPEbr`M=c-e(xnSPigR`3^|u6 zQW}%Rl)Rf#bW?O`NY)IcDPl19t$bP%9`2DCPM?%)^LA_fUQZRJz%u~$G7+yh;V*2j<< zxZtb9E0T=`F5WhS!{1B8+s%~g*Z}rR&cKOx3{m*L?WWA#++=)kI5|Fm0vgbQ&Uwpu z%ZI?Pu!7B&I5=UjmaxF z05`|aT(C{FxkHEKFX2bD&6voc6SHhJR>TQCIrqI#cZIj=ee~hv zDN}Q~>YjSbEn{14kkbww5c@=Y6YobyonXrnHDhH=eI66JNIg1AtohEVi&VcO$0f)) zejBl{ow~=Do|^B_M%4?old7MYxS%0RhJS|EYrWQZQp3b4sPUj4105PQ=|)cY#?gJE z-V$|}98e$0c)!O#;_kfbXf&a})KhclA(5X%ofsN12LTFbKnprFMvPM?U*yAkdO#v3 zJ$BJ)qLvbzlGU*xHkDhAZ>FE&SA7p{CgPsZcA~};+!H;;L8=-+Q>pq)Z6@kA?fAi% z&^ua5=r8T)nB3Jo^Hz}0Xxb@SKo1K1bVIvn!@1)%-{it;4v4>3{=_(_#X{dL)K0*w zBtY$#lE*?nE7&UdROpAL_MpkX)c@FBPrEbbpyrBniFBiUT`4-!7D)282duX+k zy3ZP4O9?c<9G^?nx$_-wk!vR(PG8Rz)QNY1cbyzKxd{4Ruov(N_5;pQ_sLbRHAoH} zO}e2|H0<<+z;>`7>=%5`trR}!#+-GqjvBYt_)lVvF23@`r%uu9cYYu2HEF-;){{?aW8Xeqc<3Sh=jc)WQHNB2 z-!jhMF}<}qqs5s|NH3T^G?%{oti;*F7uK}?ccy=qF1{%ZGkf)^N0$}NnyfjaIn2CN zul`ng<|S$0=YOfEF=;m@%^o|VH-G+9eSFWu+B|3a&Kc9O&wfTP9yL98#PrDS-8#GQ zwBES>L*3lm&;xc(SFY^QW5XwPX8tLiJ~gZP8?)N~>Z3A+>_d~ion`BLWnbMbJ5u!G zs_B)xD|+sI?B6pz&&~BardMwt(7^-yrT3Qg?z@ZnmsaqW^L2^m_M!aXL0HWhxGlgy`~?3=?(qn@!#t$`-ir+1nz<@u%fL) zFYAL7H>L0XPOqP2|G_P-UEI?3OPrs+rq$I|K}$6a_HXH<@Y7xJeBB7`+O z+Lm2;O((XG>h`*6`x~5JyrlK@b32VbJ#Wwl+34w7I#dt5>gTWo1PR3k#Z^oz=mE2eou~ zMX#U#o^D?HiGKac+q(a=Kj{Ab`?`1Uo^IW`rQ^qsYiVgomoH!5StBZB@qhe}#K8Uw D5aKP4 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/leg_fr.vox b/assets/voxygen/voxel/npc/dreadhorn/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..bd75a1cf5df6bb4fac7d04281a64f6c8f327e93b GIT binary patch literal 3292 zcmeH|-;17C5y#J&nRA}!c{dlOK}w3jeS({s=OI)Qo7k95HnpiPp}S(+kZwvUF4-n( z@Ir+x)`U>&B4(u*Ys@YR?L`Tx2vTz6ud7n95PB7gkSjrN#7jXCWc0xVx7z7(nv;~QvoU2s z@>m+yqGK{d5kYF4A%>`oC8a@SW=O(!&0vTjibx(UwPQ}rm~ApjDr1$@SId1>#H6o9 zdy$!5TkN1$v>U6XL6VIkld+aO6z-OS=w!4IzKw6o?Wmz+?U1$h*=jEhdYo6Wv1&6I zc51Ov>kRwKUWOv^MjfTj^j2nuk{fjEsAZ-XzB6kP{BBd98~j!4i?(A*xzBALa>H7Y zl6yn1W*y9C`YOaD#3hxyXs?_ZYt6hXtQB7>IVka-4z+OCnxUE!dpBCwjAFcxNGGFo zI_4TNW4kKf1*u@osNku|*a^Mx72(XH9xZig(NS!L4Qg5%9W`NNdRE5FTB4Td8+F#i zov2+&)DO`#7S_VI@lKLN{W7&=pJNZ!*3sgvn#cjZz#D7Wb5~2#Tif7lj17D>>{{f2ST$L1#A(E3;eW39O^nzTVv}sVWyFo0X-;aN zYU7@+sa?YG*Vq}G%0zU;@zy(~u6x z;2-;GZ3Ud~CTb;vP zpsQdCreF%DU<#&z!36^|Fat9%1GB*3L5Z1Rh{o&?;s(PvfzK8`=cr)||75T_;aw!S zAHKsaC8i8dGW^ylhj@=%D4OqRHDbGv(e~jVs6P59LT|o$OW8HxTA1L;gSab z=^G7x(d!!hGUZ(4fWAWC&^PoA{aPwBIrEmK~{yg|4xyeD1sH99fRxL;T$W-z{dS)vd03s%LxwGcSkg@7~o*>myRZX{z&picklMIOHccoH-6-|wl;kxo%5?#_xLdPX+N|0 zl%GB|?~6C*egA8Zd2;jgVe<5jc-q+O>1(?^9V!0OmE^D9Tl44N$Nv4~FQB<`H~DLK z4*0hHa`?EmsLqUHN<$?yF-`R9ite&Y^~{yF(S{R#K?zu{jzam=51eDtNo z(|-OeLH+QM|KRJd`%k|7rvL8oKlwe|R6~`@)GNgaIe**vf9`ZsQnD5%P%m4Z<_lNS1r>n2~iJhZ&?9ePLn24e*5-qKYskUudJ;2<;$0+-;fGg{9pb@a*+ND1|}s7 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/neck.vox b/assets/voxygen/voxel/npc/dreadhorn/male/neck.vox new file mode 100644 index 0000000000000000000000000000000000000000..05b7e1188aef436a781cdf4bfbbce80180645822 GIT binary patch literal 4716 zcmeI#-HTmU8OQOp*Lt33z3hEnW4-Xl!C@(SilNh1 z4PK})#oAJ89g2zcBGx7-v==2*5v1hCx2w{NLhvexkSjrN#7jXCbbL!;jmA66&$B!I4!4OU_hw#|3Ge?KT0Y8f|V;4?8dFI%iVEu~e3A)~OCB=KIX!;n!}OPY3zvJOK=S*%&&z0;Z@LxQX- z3>m2tu7x!iG73^;9STE6K}xJcVaO;*B6AVeVaO<~B^7GHIt&?Qv1Y<`3D+fDm#n3r zs{#!=H)Q4ovD10#*n`55QBc{7QMp$3p)h0=RK&#V6Z=pYG79QqPuPRPkWrA7btnuO z1!6i=(@jHWo`P}RHdjVNW?mS(&bW5t+S!M~kWo}ABK#=T3zfJduE#oLq=gOhP;|Wo(rSGkWpBxj9r)Ku_FV4 z!jMr=(a3Z$bD!iOP#7`_DjK>(4haH!FHORAy7|J|_!e?EmL!n0tJzA(kS*^^wuJCym>OckxLq=|qAqsg26o!m~ibkeK&@$@~l{^FrLqQtyxp-zQ5ajsBTW2n@s(leFkqS7;!o~b++m7b~d#&PH>H6x1z zfx?hcP|?tn4YBg9kVk?*VaO<`Xy_3V=TGF3AW#@G3Mv|UvOy|!BaZ}u!jMr=(a@6( zN?t23XL9X^jM?E8a>wNu||(I>el9= zYdmv}x;5%X779Z~K}AE45F7nQ9ti@4A)}z8p(h(s+w2l~BnT9SjDm`Wo@|gd>x4WK z1PVh&K}ADPHYn%UM%~CmpfF?EL)TNcp1P5RKw-!zsA%XBVo%-3BSD}rWE501^khTosT+AD z2o#2lf{KQoY>=M1^|L7CAy61H3Mv|z9zn??DtQPLhKz!WMy6lntfy{0b?bRfd-|=X z-+G?Yp1N_aFz}oX^xHtc4fNYU-3ID5&~F3%HqdVa&*?zj$Ra_YFk}=|H1r5@pl;-m zAW#@G3Mv|UvLOw#E|EuqKw-!zsA%ZP1|g3qNZfffw~R!+d#h!)NP<{yl)uMYa@DXM6Zpg*@&8r=(Q2OHlkJ|ejk#7Kw-!z zsAyzDB#Vdyfx?hcP|?sMq!D!*&0-=Cfx?hcP|?Wr2r@d}Aqsg26o!m~ibkeiWRj)Y4hlm? zL1nLzNjBaPC=3||DNJ~NCiKFD`<-yV6MA97^D^OYKlY$7WE52PVw`ZV>_cJ5D5!{O zvXK(|P#7`_Dtl2T+}mU(GFew)ADMY!ts?4#zxO8V0#){rnHN;{#3tO!gnOBAFOv-k zQ$DjP_b}xirhHb@xpb_-kWpAmamqEb4nsykO4AKVtf%R^Au}(mC7G@Z6o!m~q^#?7 zLm3U3d0|wWa!ssbJ!INz9R%OI+f;IYx#gj$z0US=vxp;=Pu5ucZyqCGLM| z!;lyAZh3CdxXd}0c`YMUmU+$c`jZ5*@19@rlPjNee=_*TA-R9?F?aTEd3xJ-{>t=E?$5sCK3loX@4Vxj zi*0+bNBuCTd1ev)jr$|dxUYTo=l(FK3~wFxL-!r>)pTyY36(j6XL zJbWBHyca#}+~(oSyF46Ff9ibj7q4&m;~#SV8^NC-xpOV}OYiUXeS2?r|J6DF;DeL? z58vW$IsQxV>%R#8nY#}7h4;D8KL-E1-{bz_SN(Gj+~@bK&;7))qki@jH}$={{kvaz z&42KPH~rV^zw>v)-~94r$8}uBmS4X6IsfQ^x81+}TYvpQ)~A(j+$leN_^|Kazu(WDJLhN5Zu`lT+y3B#+rD@2w(q%>&m}$WD=RBL zo6Y>nl`DSn;zhr7>5{+l$}7ILwdE&HobW@34*9-)`~1xQEr0#&cl_<=f9St_@jbu! qYQ&jT?UT>Q%r0{`>vRnKS;v3orcVn69EN{_lUJ2I1e(ScC%r literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/tail.vox b/assets/voxygen/voxel/npc/dreadhorn/male/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..0f9803a8a486e20ccd163435604b8739db3ef325 GIT binary patch literal 1500 zcmeH_-)oyy7{{OIocBl4Mi?tHIxHr|x3h04lh(DaHf=iBX=vU=_M>#^=)};hRf88Q zWH?*OoIz}47qK=$VY?WmiXfvm{@B$RI4E8f8T4wPH{zur2=eut{uhD=KAiJ>zt4Hj zbKdjL7Uq&0A`(qy^PJ=-SL9r_IGtz*91e+-C&=8zVs=xx;8-N;cSgqV4Af6>P6Xn2 zaNQ9JHN)8+K;P?#3{gK$Jszn?-|Nh&$JmQU#*GK+#&gDHj@yw_H%2W+FUB0=`iy<< z^Qrkcb^M%h{6HNqGDKa@uE*F7jN?XX-N+EN)Gc-64jAKxV%-5t)H(x(sKeQDQfe(@ zn=*zP5qh?rV=QB$^wp+Ros>~06l&JkP}PKLH8e(3YLxkg`6R~s5{>cu5HU_@S=R{9 z64ntXG-5;3-ml7<8mbZ25w2Zo?34XkwJFQ<)Czm0Z-r+Y)-ow0?Xx`Y@ls;klrUGA zd-mm1QwNX6_j%AGK%Zdi#u|!L2Vo z!&BWy(3lgvJ0lo-{yAJ46`UUt9PR4DZ2mNEu78BhMjf3phn1CXguyeI$)3XWR2tch zH2SU`gTR426v!O|sr5i!>w=89xKt5b-7Vw%eb(O-TwrExM{sSsAA|jUz;`9wy<5Ov zDD$?Ae-rF}BX}Vk!TL5EeI)o3CxH8J;H8N%oH#y!e0Cc1v%J)YL-^qJ>-glAoB00t zJ=~T*&}@S2k|rsmIdlaNCN_che#DJQ>W7-BE;g~gM1Oh>l}ZI{3+-o+zkw&&A9l%w zw%{Obkb*x%pB-rgRzwze=nK8|9sh~?$wgP6Y*e~bV5k9-697ptSz AY5)KL literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/dreadhorn/male/torso_back.vox b/assets/voxygen/voxel/npc/dreadhorn/male/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..dc42d4f262eea6195aa5cae3fdffbf7c5c511127 GIT binary patch literal 12204 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/goat/male/chest.vox b/assets/voxygen/voxel/npc/goat/male/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..3f16dbc41543829bd77dfdc7d4e3905d7b8037dd GIT binary patch literal 2696 zcmc(gU5K4m6^7UT{mwa6Nt?-}GpWfqN$5-(toboNwv7{$X*;QDO{1}$)=;Fy458om zF_h4Tq0)|su|#7W(u&p?B?KvrZA^or5QC(p5TwLV1Sz3t@lr2DynB82FL#0^=C!fF67qchKEDSDu>CM4*SE^ewaj4S2?hwcv^#(IVeq z;1^ENW^$>G%%kTER)7bOHdE29!GB0~B$q&66ZIvqB3g^F`0}N9(Rug)&!{z0A6z9g zl<*16V@`V-lUi9V5!!`FNAa_ExtzM>as z#szdBv2DheH=b^P#*StY>1T?ApkE zaFJM{+%<6Vb>Jl8MdHOOx1p0;kH6>r@%SX-#cph42d;Q~0{1HLc7)2cxgs|2SuS^y zdCF+F@$;4rctJ0<5#j^Gf_^M?6yFF2pbIWiAj`qe4<(rfa_?B_C` z$KihB>+rP_zk_ji9oU%~GQ1}G6uDE8bBTIFFZ0%r7cn!nC45tP9||7pu}eK&`UO9^ zyn_|};tjGAn_L`guHr70n7!PjE;aPf2R^x1;_v!Iu9ZxRMpjMq+rZsQfs>P3*Ry;@SW2QULo9v6=AMD8HJ|;WUr$e{is8gR>q$_tVk#>AS zb7ne+y^DQ-%{^^8{e9DgQ>M3HXFg^+F>dJn{=23PO9wTvYK0!%@JUT?->f~W`ZcwFi4NbhQfK$xuE{TK)&9rs*G&6} zPX6$a-hAVPu3Y-9uD<)G{{F!g4dZ|F!W%U-G^91FM>N=flRmR{RO4Ij(gSyI){$@A zqSHSa)}P*9rN91iwSENV*^{PAzcKygkEVlDBYJ6eoi4t*P5=1wZcV?iK!<A#^btu%?aIc=y?sy4(P3)nyx%zdSzrpqobqRxBP%UfA1OD>_IJ> zUZis`UhCnrgJ@^zQhj~poVMI?RFA*#P2IeAvHtLjl{z;$prdg1-~5+zCDy~cFKK$8 z^vsK=H2br&`p%i(>j%HPtWURxwB`BZy6?y5wfnWp8XFta`zBcj)4voho38%)T7Fm2 c*Z4-$b58Hv7rEn-7Q0&LL~j97<_v9#AZEXGov_8X&Xo1@-R9ZR{EGcK01 z*GQIfvwDrmQZ4nC#tI|ZaS?l_={Jhq+n#L_-M4M^_4TAuDQ=Gl+s`gg>iU~MT`uP5 z+pz6I4Y?^i;Kh4vBZ097B%FoxJcx|1MHbxTwh0ACg!RKh#YG{fM|dPHMC*}UqQ~=iclI$_QbK!1cy&rRdPBMG9*Sc=%2GjUXF?PuUHFDP1Sd+UytaXY z{X*Gs)gBeL%n9*HiZm{r_V+)-rug{cpP`AOmW zC5=PEcv$#)w{Yt%!azLT#~!NU)6kwNH?2X`nOcCRS6# z(6(}Bx;7Dgp^2UYJ4q$>G4b&rS1*sVym*C`n^*b$&N4pbughD5*XyOS!jH$jmZz%% zgd4ZA>$wJo-&)Vqr#^nV9^}`rD)>Za&P)i4-wMC{C=A5>oJm)+aG{w$e(oT7GMAw* zTwJ zpW*%K@A>GvC7wzQ(s*Kw9p~ogxVS_p6ymmk7Vyx<0|X@9ciw RF5a(Z=U1!U6<(b${{W(|GGYJ# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/goat/male/foot_fr.vox b/assets/voxygen/voxel/npc/goat/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..4bf934d868f2d4584d1616759eb990d17f8b7d4d GIT binary patch literal 1208 zcmc(eYfO`86vxl|mM&zspp;?@gRVeqE1BamE>p1#suqV1*_c*GjL}GgV$&Ez(rC11 z85)#fgD$%;bc7fqDnqhmOBh+un2^OVVoZ!7MvWi056j}W-_DEQmdHNtB>(q3=lq}Z zKhOJIS~hR>42Vc$ZFrM9`7TYQIUEVSY6WVhLR0dRV(Yd@_@H{ra;=Y<)*(jP0Yf3C zt-~;F2Mn8ZYSAIF$sxnE#>PHFloOq&V=>HqVwy2Sykes*!Z?Buca6TosmXp0hC_JXx1H$S_K|a*} z-RVf`b!5yz&+;XVyq(3|njC0&lavS(io1#@id2^{dRCYk5pG}CI4BH-gdesD5B3TX zjk{WezTKMd6zcp!Yn9MhFPztWQ@NXH$V+#VkAXdf?N}jOi3`ce%-Tw@4q$A(%RNML%a|y7{1SQo{#fRi>do?o6WT;ZgXUAYi_A)rc0+yo2#YML_*0i_P(z#%XGXL zx`>vn%*HhOSSyBvXlip51vX-eAR#s+C=n^?XZ?ui-_`ZJ{tL999k{s9{c&CQeeUNu z9h|*Bo@Y&5lVc2LwmNRTKKU_a z6IuM0EMFhGgfk{(eXZ7Mr`#(#u2y`E0GOs&MN@!!FHur4B;GD#O&?wDuBKHB$Ttx>{#c)ljzByB*h^}TrJCS?T&W23oA-h$O-y@iJR8VzR5OoV4=oiePpLa@7+d2d5 zd$Q4aXb#?-cnE9Kg0>;Si)RD}u94eTh~lnNEJ#gT-6Ke? zX+TG19=d9aFt~Oh#&;}1=QFF&y>lbd$!!>We*l**jAHugH@J1<5`MokjZ*UG&Y6Xh zk`gSfDo0`7Y&>3Ff#$}Q*z{Bbj=nYzXFe{)k5?-3>lan{fIY{@1XsTn{PKgKud5s< z`fD(CdNuy|sU4{!*%rQ7j)gjDr3GT>eBby-jec zyc`u371&d@4^OW<59#kiZYmcO$M2ru!9w1h;$pnIa0rddk73u5*D-fTKED5aAtpKt zaEv?q_x^pI*V@{C6{$VIf#WC9|LHj1I{zKs`}R5>OAes%@CY`1bP?@mucN7{3AY81 oh`?V6uM2K{b$7m7ykGy7=Uxxvs6s zN%bs|QkUB~FBB-#DO5_r6y^yr`7M+yfJsGnX1jo%EIsWGubW_TpK1q|BD}bJwrpqgzT>C(Tqem3>d4-n2#*S z)|rhsXCt+9kgi3@uz`qTA-Yaj+$JR77s6|W`2itP#fCdVdhuKe>mqO;i{$jc67u~* zNl@6|D>RL&+7c6S9t(+nI~n~BVtslnttRZ<@ua+3M)Y1G@tEq}A*>q|WT%?HIUETt zK>GBwEL%v=swl?S$3o#!f+7qk-YLE)f{jA&1!1U1c>O@d4x!5_Jl-LEJSezT+*l^G zRjYi1kY^JrvxJ6x;gZUiq?_=V4*+oRAS`!evinZ^jCI`Pr1&4S3RHY2BPef8|Qt+jFU{+KS&>LHCsw zUOwt#eB>Du?_Tol%QzNQ9}~F{v)N2avK5nI5o=OyICIvsZBsUFCl=Ft!@~R5c0NB$ z=Bk>rzgrl2Dtvk?G<&RE3ZyZ7H;?ZhO7WeEp!K$%2ct$l693=#pO%)!`OHpMrgX8k zC8y`8u?jwS`kS=&zanUlm+ zM)T%g5(91{?dr__Jpa(RP_I3uBlv2d>0%FoTm78vd%@-BW32YJkaN6~qU(c{-XFu^ sa4;z#;R=2dHYQ9wnO@(7dSCz2)fb%lXMgh{@o!ovKa)1qc;E{ z5W%F;A|SX3HbT?^E!NF8TWDjI{Q+7WpP6{?K6~cAcX#e{&&>5J3nzOba%p<@GDW`E zMXt>*&K%Dd9JT)(qb}TBoP9yf$0=}LM$WmBc(>=g8~R+ukGQetz=L={bl`#6h91P# zhR)TldaC%^59i6LBK18F;_Cdr&V9z7v9EKVDvh4F2G4BtJXL&S1@JaY2e3GbjPD~xVZn24s1E}3vetysb zd?EsohealiOj6o{Ph=4BiS#GpQ(A>j#3$kt@rn49_TdxpiTFf(B0jmL5ub=p#3$kt z=}&2M=}flCrvf?s3HStj0zLtsfKOQtd;&fJiNFH`lb0pRe|mg|F*!Z~pR#QD1bhNM zcg`Zx5qo;~g4xbJdvN2N{eE@ZmZrqs?X#45dCMy0&SV?4(=W-GdgW)X#sj-1y&Uw#Ygc`e9G3qM-f(h6cNRzY!@a|e3Tz4fzqG6g_Qm%{Zaa(^hfCrao#Nu zb5}rt6Ca^Jf{)-M_z3+e+YcYXNAMAR1RtgZa(o0I!AJ1nF+h%w;3N15G6&l?+3K6V zEkAp0^W9CGx&P3{+~~tLbfE)nXh9PykO_>T58KcMdM<5fK@%#F35=l++t7s$w4nt} osBAKs*myj)!C+t?(-&J?TeJ1`b!)fV)@rq^dONVHs`#zQKfPCwtN;K2 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/icepike/male/chest_front.vox b/assets/voxygen/voxel/npc/icepike/male/chest_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..029f355d660f75b2703539bc9ff0f62207b740ae GIT binary patch literal 1948 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 KYc`uaEAk&;q?6A8 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/ears.vox b/assets/voxygen/voxel/npc/moose/female/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..e0b1c61f1f39bda40a28c1977555fc975f2d62f3 GIT binary patch literal 1216 zcmeH`O-chn5QVF1I$30T+`7@=4+AD331W!i#so$)izJ|o#6cumy?~t>8i2 zcm>Hlp05?Xf}45pQB|*~rYXA5rn9vt5g8Bi34^>ik<+})d?=_TVx&f9=VkuD7}O;6 zEf!H#shcuaQLj=nT5+(ch%|@~g_xQcXUsfvQDfiOH%*92L_gwqa3hULLPQ;h9nWyA zot_*I2f}*>_0lFfo2#gsAlqr-u)Br5)&|<^D;RcDO!hmt%yvl+^HCr77a6X`2PlvF xxMTkL{*1@#DHb2ExS8j8yG=1_Z=)!RZ)NkEBc5Xr)gUO>?!xD^lJUhp7p zyn=X-@^wV7;3hNk@>P9P-BdM0PKReJ&mz)q^#+JMr6MQ2ai<&;t^gU#!P)t^ccla| z2D757q^edlnIgdy&m<@+F%Ctwm7R zOZV}PQ{YY)NYs>>5?qjomDskFYCyHbo+bJuHe!$fmQ#~cgKADqP7SdUgM?gHv zn_i8|ve(v^oQb`&UG;nx=nw$==gPi-^YhdzbF2D wfAPngp?`h6`t79WZ+8{%Zf^N#G@7z7U;c}Ky_x=;&Fmaz=kTB3K>P#v1`~q>&j0`b literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/foot_br.vox b/assets/voxygen/voxel/npc/moose/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..3013e8665acff6086f0c75f9fef54a3fc87b1ced GIT binary patch literal 1448 zcmeH{O-chn5QV#|r{~YOcBA4C0TYk}F+_1=0;8El5>O&Bh-BeLFQDiV+=>TqFL)3) zUO~J^`E^9E;3hM?sn_+snVM-r&W7W)XJbsiQw}KR$s2Q8PKruca5xmB1vEaNlvfrL ze7J~l76}TcMG{!9YP`!Qvzj8Xk!czF%i`{`Vsxe8j0W| z`m7z^crs7s8G{#3jz`vc;R|45m>7mJ$Os-W7KY3uFbNFRCOii(2~5IUQ5`a=7@P8p zlsqNJOG-}P;gKL?GnkAy8FTPR1n)9$9etO<C2Mx9$N{ATABrSC88nlAaqK$}Coj5eaB{+8h&I4IO z7U0A!NEVPCoP4F2Eja1w{y6_Rbzb+<^ug}o+Zz!X5854!{LLc!?Q}TbIXn&}bpGMd zwEe9Jo(oVbvsh^)xq?Bbx{p0Y6qU`*EE#!@j{}-q#S?x~^Ms%9vniNo)dVQGF;(+>p9&^E_=G;>U9RghG( zf6boYXeS0{XsgLbE4d(G(ook>*HG6`2aa}PV1~AaI<%4t0(;wA19pCV)_ZSa^}}Km zCNccjkFRS>@wxv#mfyXOt+ih4Y_7)1@Dr@Z>1ZRaj)!qJ{u0w~8}S4EaCaNm=ezOe r{%2gCw(;wGFGkBNF_}yrd9^VAUq8oY_UUeB_b|JMm;4QMe*pgg#liGpK6)&n@=rW6~K4;-jDPA=ta&Bw(~Ro*Ui`ba&eNse}2o$vq^sc jG|I#Er#YQY=iI-y^v~bT7J7R&i*s0L0*gVA2OV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/head.vox b/assets/voxygen/voxel/npc/moose/female/head.vox new file mode 100644 index 0000000000000000000000000000000000000000..02da1d8fb70fa3e910d6724ecfa755497a308c54 GIT binary patch literal 3256 zcmeI!P3j&+5XbT9x9XmmC)tSzQG6j_0%8zD6gMUi&3};ult>IB+3H$Q^a$=ffVdSr zh#RjU-edgq6ZHyilF9e^RaZ^-bXC_(^4Y`3ul}?w%l+FI56JS%X<0tKcygDV|7?CQ z{lnwWpIm%1p82ojWvOM!4YeeiQmwSol8tk&HK&GLN-C&mrQ|@LJ~vjA8v@0oiiVgA zCJVyM^VL$#fo?RAvUsl9tn=0U24ANGxrh~WX+y9(Jk+!KZLlHOof_mKfr`cs+NUq9 zAAAUuE`~CUQC7MdZ~Q1bMLn5=ve-Eq0x30lHF@!4UXhx-S{_ivY%}tj8MX5jxyef$ z3Z`n(HAV={kP8$LpgHM4iA%?~d+Np%)%8!N!b08>Z6+uIEf2VKQKN@0~ zyPCTiBiLmV->ii|+1pEXH%3hR#7161jhrkR0v$|x=%}ULvI2^KiiPK6Og55EYYWG@+S8+&CUy1V#vDEtI+{BwWmArb1 zW6W6C8)}HrKxgO9uc0awYBra@_A;!6I{Mxa!~G~L-^zzzm(7}69}O|>-TKJOP$yps zGz2=9G;-2G8Rh&X@mBH8uCmkfwfbFD%_j8NP_y|(nQxzUW;HR4*LhEIPq7v%8Uh^y zUXpq6>Sm29PJ?zjW~_}DN;9`vp9bxGnndgJqlG!N^JQrk=_$);?~cS@W#1iJAM^J3_y^>S(UiH1Pu8#5MSVQz@gpq(%GRlBZx zMMI!Z-&mEK55Zp2=AGH}!R8yY`4(^T-Q>IJgH67hEVjI4_vK9=Z1UaYyXgb>p<@`Y zNX0!U#ad_x<4y-Osqc+AD!b7@XAkPdKOanK<~Pqkpz~{P4Y2uanH%OJ(5J8S^-U9O zBiJeJa@w8Y?hJRmy~}Br(=Ml7F5-FD)4P97cW1Zz4v1s0eR!OixwIkJ9l7#Xel&z} zr(QPiJU&DxhKyxF2+R+!7kOf8q=6|W4BZKq9>v;6&(U})7o&K}`^*z^T RwRv8L=XLl$dtiP6{sv&mC{zFd literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/jaw.vox b/assets/voxygen/voxel/npc/moose/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..a9f91ea23475c0c2227ae681a3f2b48298078369 GIT binary patch literal 1264 zcmeHHOG*Pl5Ur~2WEHpLM#T>UWQzluchSu0bhi2+BI7|ZA<4TJIVq~V6#^PVY5wr+tSX*@NXrOw zmZ%psv&1x-DK(>}p4?!rp{5a{&a;$IuPS8c7!yi}Q+}!x*oTk+IzmB0f`SpToSF-o zhPgZg=R0Ot7#net8t1bk^Da3)8V=$`c;;TZg3iV=nkLA%+c@ZMVz<4HY;6g{Zi>lX z2N(Gc(ZhVy$K833%ke&{!#-~5f4n~8{%VTPw`W|>3%uN<7-d^1%Q9kdq4nqgYBhiF PrrtxnhyQ#7;lK3-)wTne literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/leg_bl.vox b/assets/voxygen/voxel/npc/moose/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..a94157041e8ae909c156595a29f3c53a43be35c1 GIT binary patch literal 2496 zcmeH{&yH0^5XS3&-*e7o?FJ2MCIJ!yArdfdgk+Fe0EuP@P7GlyF91>AfISbuS`!|` z4X{!JI;oL0qc!+OxD@6bNG~ zB{v+?k(OK$iXV<3QX(F~_>fLlxa zPTt>0n%NCi0`c0Zfv*Jb-RPM0k4k>}@$MaokKf^&M_#sye6Y-svx%JbmM**4m@{7mrE%Wo_;Ai)ZJ@lkpkY z;Rc?5`RwB5X~5@s_|scNZ@r_XIK{}ctlEs?t3?(+c=VHAt%`p7c4U`H4jq{>TZQ!| zBE@a+BSxpEow(UdH{-NLoVqyKlVtC+`6D=OZa==d{rKWb7lXH(?@Z{-j{WM}7HgsN zq581VaH?suY4u3jQVupBnS9Bk7mqf0bQp1J9;%(bqb)r8lD)MWEy}&r>`^0W>wK@_ z0%y`fOJivaDK6ToMxZ0h7}_v4>_wBdX&w6H(H8lIM~Xe=5oj^=F!V6=z<0h6J@9aC zdN4Q5furkTIJ+@uacW5q#)dIi;%)Awp5ZF=zz=zT zcv>|2(cVYeKx+&KOh|2uZA|J=>>JzU?z|M?D_egOUk>=+qJ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/leg_fl.vox b/assets/voxygen/voxel/npc/moose/female/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..cae7144e4f49408dd7e0d039bcfb9937585b3b65 GIT binary patch literal 2324 zcmeH}OR8N(6o%Kcs&?({&FFNX&9fExaU|(<` zX~Zdr^C-VMQKw+%HhxxBtyO>h>#+~#%O_9Y_(en>-M@H@5m`jOxVSpMaoUI^wt=~S z`qkCNi+JgHUq!+#y_O@wiq|ZWmRh4(4bG#4c!qij1J1f&ixo{<4Meq!%30t`PY+H5 zUrl)Okea))_v&fYn-kB9wZUS$7xoTc@f8K^;ebg>>^jx(+UZ4JmI7DFZoo?(I?pmz zb6XWe)pUc~tcAj+rXFwvc}&I1xo{5D;ITYN|4@mh#7M+Sx^U$YARotdn!BnIIt#o1o?j z#C;9nz6E-6lSC(L?_qgji`N_uU z0}7~KF%;oxF041{8Q%=*6;WSq>@7 zE~Ri@HUnM?y=wSd*U~mAjhMvcuCi#<9Dj+1kdK65qH7D2M^&V-l^@tTqLd z7hhvG8gDi3a)&*mjNXPG?#{Kgofh$};K%x0$9h<--3^XulllPK#9Wn?PpNCJo9D7Q z`C1a6)Oy0!L$G`%)SozM^uIMRdI+BaL6hr}MsH2&rP51T(7iB&g<8^+;H@asihct| zjeB#yaFe|H?W2#!)u;EykF5WE z{_FVpyC>tXKYknEKf4&e|8O=Q-gu_C%|8oZBzni}S D)S4N~ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/leg_fr.vox b/assets/voxygen/voxel/npc/moose/female/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..8d0f9d096d97c1bca81b6bde90d57f801587b0fb GIT binary patch literal 2324 zcmeH{O=^@u5Qe+E{`%`L-!MBjD*g~K0g0#~iW?J%W)?|6iNqk1tzJOUBe?ef?gbCx zLa!j+qkSepuiz##yi~na-St*i_somK<7=N&O8eW3158RoO3xQ3yDMiTCBs&*G73n_IwhxYkd~DJ-%$YFFBOa( zvlQe&3F;>?n)HHAS=?7N zA1u2e!VJ&=C8!x_CZh+V2crk8IpYJa&NUnQHfQv6#@-k+`qqlT0Y@Kcv(Z|kt%+7< zY@HV%1~>8!ck)1;d>Go)5B7)6cuXeA(RFm4`8&Ffu1`F$iK|A}=UmO4>p<7hC9jSy zTpeAwu^tFeb99|^!+|>cgY`jutcIf-RR9l|c?Y_|yaU~6r3B}VN%6A;x-kh>LDrax zlED|(grR`e?8tP{_V`PL><(W~ge zmAqE;$Q$c{80)dwD|)PV@=h+O8|+B~S_4`GS_9`B&>GMh&>H4i2DIQZpfxlVxWa)b z9Gh)mrf{Gj`+(NK+2B5KHtGg@QbVVq(>PN@r=io(Y1|t=5TGC{TpRDDq0yKh+~C%@ zx5oS$8m#v=D|w{W$bF2BpE|WhYT?UBuf%~UaU%|Rj?=TJJKOwkoqaY}ul9|bS2{oP zzI%7AKfZITKUllb*RNmhJ9k$5!NZOIdiOrq?5BHM{o||M{$~GCKY6m%Kj8oR{-u9< wd)R;f{Mz50F8a6kt9@_%c0W2gI>V)D<)8mIc45zFb1{dDIsDHzu>1q~11B{ZzW@LL literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/neck.vox b/assets/voxygen/voxel/npc/moose/female/neck.vox new file mode 100644 index 0000000000000000000000000000000000000000..35c7015dd597494a57edb546f256ea6fe2d13b35 GIT binary patch literal 5680 zcmeI$OUmU(8OQOuU(b7p6P-lyLcjzhK@3rxm_TcKkOY*L7(_DF4MgG+oVx($f(vot z7Q~@@IDYEi>K2^zd-!%;{&juoS5H;-FF*P8n|}%+eDwbFj|JiNuZHl8=bt^horJ#= zZrt(duReSJudj&s`?7@4S8bv9omP$WqNTA~Z1O7#vh?byrPb1$EsohzpRG1j6l8hH zw>4Uu80ct285CqBMC{)7>TS&4>gdV}o3NrFODADeCMX+wsaT`x~<8! zCfk~9Wp;|b&&eF{o;${-=0 zGDI+FBp;njOFEfTJLDxqkf}r(Kupb zz`fQo|E13rv-(M$DBR4HwzuZ%+H6%8E&`wi>T<9!R`D}jnpZ7&<)8Y?w&cKE-Ze@|BlSR**Ksk#Kn@^j@ zCY-``#x#dLFzkWBUS`&_x|t2KwlW)JZD;ez=AX?+nUQB6nfR1JLm$cr=g7s^Qc%&* zF=jrKrs27Ru`5U?#)F~%2_hjC&97p~i@jF(g~BfsexWdh{8_YFv|aR3^d&ireiTcp z&QJ%jTcNHV3Mv{pMps9;P8s#G`b8a%tDT)aTM!R5f#T$4o7T4HN?F-Al7Xc76F2&F zZ^DWqo`tL3?z8b#jgLbUuPEXfNjxgEnmw(Dfzx}Ft|+J1ww2q}PE@9=XP?3jRL(xd zXwkS%O*%W?#h7>({Vxt+`F_6IM?$+@efteb-Z@~LDAM!{yGFZ7d3qL7kap9E(pFB{ zXbeHUcq}c<^78rB0y|GXv><0-LT~Dv-j73~RrF)UZ1XhD6m=k%spe(KYm7|~uW8L2i{@k(mlw>G0ZV z_^ghde%$hLVb^a|x~g;~tkpRxp2b&nzF}0lLKCkj;u%RiVpW=Z@Vw?si_o)2(Sz+JL?xZVl z5WdqD;uW5D&CHi{sgdKz>>B?bl#c)EpveHN8PAR<{RaxO{ z_2^3ac#?c(Ds+-c(-qF@MhoubFt(%Umwzgq652THrh+l8)*QK4ru!!C41w8w>VkG|;{N64elRiUf$WV-y7cowcgSH-=l&=s0=MG?

|P zbcG}@A{DwqK}AC^EG?Ya#ROV);l1^9I)4nSu=Mu^qK|8@AT?$>X z&2lkwAgM=J=aP0V?kI4QYJ;w>G}W97&($Vf>DH-xx|RP@VCUE)SnXX$DO*vIlQI}q zVD~@(UB7{50^4ol*^bjpPsv(MMD|^58;v)~UraY~j{kE_Aofep$D|oC_t#t&w~NJf zQC-qYdbwyU7uS^c&KQ_ioIlI7hKh!cn3FnbryP}!zDM~{*{EJrHYt0)^A50l20-U< zT`@l10Lg_gqripWx*&Gpz(jJf&2SO$oxS0jpARFh&w@2VeF#c^`bcl>{42Fh|fr*7^F%vQhuEiC0SRm#2Dnw1B(+tBF zNI16h?ik26WjPxYL?XY)FY;}@a}a=2l3(Rl`DYs)7k!R@&j7gc%J1?$P|jln9WGh& zN#?jDoFmT*MgEXK<$DCdt5yD#&z2rd1s;0xmwdK@rIgQBXy_P8(!+S3@0q_s&EA;8 zE*vK>(G40pN_t`tWzfZQ@}5MZsfnb`iD)er65}PCCz*TVR+2d-4;>fsJ=t&iHaYFd z1}?Eey70hC8p;D0jE#Y=E92AT;=eW!FVui%P}e#PmW zBjwC?$2k@qqRP{@cndZ&f`cm9YQY6Ncnr$&_$VIgreckwM`EPkaQ3!KQgUo1Hksm6 z+zW3nPI%GFa(VRXh4W0iTf5tFvbF0!CE(6*oE-=A^Phe2e(?W2=kMJ&zVUebJ70ga z6dupM|K{T-?|k?1!#BVEck++zn`!u{_qwZ!rfB+XHeY`fk;yQhGRQ|Fa+;S}BN{H+ij;AFUgpnnldDC{ zLuwX+MyTBq`Xp5%#LelQ=N@9RD?JmH2yqsh8S{<#mO2}m(i0)3!g^&rp;l%83Z*7a zPlVc|7YRmGG&Rw1ay%MVm*-vk%{6qlR>1>gJ8c~HTG(rEqO-ArQLl;VeixV7F6m=2 z9^n2W!`0*f<-_~ciyW`FO^iF+D2k$Dd8zTIfA{M6Gn;x2^&I~5 I4aEQI8-le1R{#J2 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/torso_back.vox b/assets/voxygen/voxel/npc/moose/female/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..04dba9fe4baf39de561044869d0c04efb641b448 GIT binary patch literal 8456 zcmeI%OUicHRR{2Wzn$}ZHq(g`l>!rx6k>>C#{^1KjU=Fy#6l!poq(c4uL7N&o$wl>Yq7ufMqC zhyQ|pf?tDQ{N>kQ{_5Kv{P+3v&l#g!V^k=;_uBhN_vjhgE0z9AdBF6%(BgejMU zyWDeBv|i?c3@LC{FSYixTFy{{ZZcP$ zS(<~+IeAWJ?-F|rdUmU5x^~NfS#z0nB##-&wRiRYyt+LM=e0+M0`=ZKx9Xhe#@@?C z=4vIO>6~30NIu6xJa^}82|1QAVjtHYjrO5I#aHi?>y^l#ov+j8`n1RT)H*b%eizvD z(_Zsao9KWJ4GNh`Hr-In=X`c8ebq8149^`J)Y3*f4gm(_*}7MBJI5;c3!WGg_W0D+ z__QYs=+K}-iErInx^HNQLAFDKY3#+`H+sVEYa7WtxsQIuyStQqm%Mjq$R3Ten(<&X zb3ua|@2WYf`F73||A6kfq3br+?bY%ObLBkHj&?E)&VFqMLH@NT4B#-kL4^X@_ZG6o z>M`Cl9!wb1Sa8;>?e*FVoxrJfhX&PePP-XTFwZ7{vg5;L#JB7t#Vtv`IPR>>640!lmGINiF@i4L?w zgX*`y(=yObW~ofoc;*-veL{oW+c?d>U^U~w0D-GDs8Arou6SU=sCb}3U44XWMfj+` z71#xDF&;Y54h^c`1@g@wvTxZpXmCzpw)7Hix9@%S-8L-Ga|?`H;DiR%JBCKT_fBvv z{0l$2U@pNGI<%n1G)dXVIUnbYhmo}m$@4YI!-h3)zDOPz;b>63FOVU{^ZwMXL1vf} zT`&ikA&5hR8t=?Cz-jm5kSb5BmEZWrC|g47<`Z!Bn@)`ftCQ{a+^qo`RPPI9NYF#3 zSp)1w2A$0snl(U!>OEtnKQeF$s7IjNusqKQuo3t`z@l4mT5QYwx_R!_-r~IQ707rJ zdIaSyXfBwZBS=d$bbQmX^Fbv#VE_+IL0h1uYdlcBE9hkh2ll@9g1IG8C()t7Wh>`V zeWyxhyDoYb#Mjjp%!MC1G?*X9@7Q`A!&u_%HO(=}pbMQ-@`Da7K)l0%8Pi8>zK@^e zV8epx4d;0n8yZtvZa-+9kw+z@DGKo1%eznowK0hgQ>v$RJECJ_cKb!AHzKF1!8#z! zmU)ju?H79aT%??JQJ3hi4)6vwO`W=zybNQ zIVL{9NasiHGA=L<^G)X!HJ6fMkb?~iresPRe3~3gd`m4RU^sJQKnl4|4mPNc_%69f z#?S)luMPvIdTgQTIMFx>P?7Loa;$^H(X07j<2(4TKy1~g9CC`B!=N@S&l6RwiOEMy z_8wmxO>8-q-{Ddm9mb?cqF*u)#??Vl6VsV?;T6!K$|xs_DhIP*g2IiC6)3SV1x60se6){ic)B>uE>dUEOcn<)Dq`wAxBnIRPcS` zLzy(p1r3&3b{_MALn;mGVRsf!YwUm=sMy$n`9Q$t(@q+swMaeYSF@jpf?)yX^Z$Zr zW``henJ-omH8))Nn_9U;KB7W3A4nqNxpgYIB}YXxIT-k+I(nfSj^|6&azGO63uYAR zeoIhFSkVrT6v$SU4iVa;uG1Juwn{MP4C84O>d5HloN<-#M}51hUgBP(9aK zM(T7aq)@y;jfFRRr?8XXP&^SC!~5)rYOMtXWyfgmz%AKz=)h?)pljg=!J#jh3lHjt z_z<><2d~f>MmIE0T;6+NM18@WWKhEFBJ9o_!kJVf4LM`9gr0^o1hdCZbYgfxKoTE9 zKaq;*8>DvUDCCA5?$gZ&@xLg-F315Zpdb3cf8g>gRq4AT>RV@6AS}-l7&}KL7ti>l z5&k86h(p>AjuLiZK2X4p#ouNWX`VG#?819FMJVN0`cfEo651mNkmI|GBYguo5V+X} zxuAF(EPc(q$VGo6=N-=CPRMe}5*al=-BGE&~ z(;o1^un+ps0I(muD1B!7)fCu@-)uuhe)|<@a&9GqlJ-~zd5XC3Z(VICK8-tT#>0v|$i6{^n zC+9ao_F`>t@Lge?>WvNq@=Xq>Y{Oo{!pNZ}lTXYC^EMA`{6{T)LAj&4AQw>wUFbwD zP#hr#lg=?Xlkma7rSwzj@QI`O)~M(&$$_GVy^sqU1qMvT&SKBu5a|*p^`!?C$6^V& zVm_cS_F^p&qww0KGg7larn957p;+;R3=Gh;vKPPcEN8dj#2KdVO@NALN1>W{o&Aq0!j+P z&!i*tFg^BSF%T}yEq$~inBxCJb=t}auN?(b46_O|q4r08p$er=b&bHTphd9v~z| zV-D6S)Vp?JFQj53(3sMLc_giaUTC{-bxZUS&$iu1kONmN?1da?Qt3nS4HFh@$kq_; zr*?w9kOSd9nj!W=F23F7h{1tTTBq~WG#v&IMzCCJO%OQPi)F&Ps&>J7Ud|H=pNJtV zT_-~&#e_=*eUP#jT$G9BdUDi7kmW{R!ozD^K(G(T43fC=f~N}S(to6I@dPE~!bcgY zhc`}?DM}pn@uZwcA(0Luv`3hxYdt^Y%e)tU%29eocw!sI{|E}!qc`Os z$F+n@3wB{X;7II(9Gu`g>Wbs;2kp;ugqesV=5oU^QNfyB*c%Ky6BcZ8)g41Mc!Z~w z@B_s&5OYAi^x>B~FIae=l+RpbbU91Zg~w4i3o~M$?y$%#sJA|IF)PrZNl*AWlpy>Z zprTHkGBymDx88l?cd&|nc7UJr4Kxm00qA_J-{uWxT0MB^<)fR3DpY)kOh5*;19qU( za7m{!rCSFWhX08?Kefpd&73!NrH{ZH_Q1P}B%f?t>$aySRKVFHx5x z%0J_R&RBONi@0oE40(nzgJ8%1*{loIqqlJb&kl+<1wSaj>D>+>j9*~n{~>2yn6SX5 zqjlpKG#5+=M-fEn-S|3YH_Uovt|JMQ$jy<}tXq}rgz$4J2TF7NPO^~Z)I#BARvr9y ztYZDn%72q& zcKkM}En6GJ1s5jbX#5c&Zj@kw3kN+SHx=kyl)C<7amGjjQEqq5OT35_9G*^_F$WF(e6qo1}ZNN+XHj?mUvATd*a5o(s5!hn2iOqtKKAYa{!Xv)=m-UX$3Rf2DxAwhV$ z!*Wvb9Dg?xX~hPmgZ5ZW07(L<5`bXvB!cAbp-KkDy@Een$X$5D>{SdAsdIRd2B&hC z$#DI#jdP0Ju>8?$#vcqpA>|#<7K|tf<*|O75TA|#{NairiP}*7QLo??%)L`Xd0sF< zKzp3QWwx9au`P03@Yst6%_4p0SP%`H1NL354S)8hKmJi_&!02X4?g>i_xFGM*WVWO z{^Iw(`~Kt4f9L%N-~Fxk_kQ!+?;n5u+52aI`2F`^fARb9gZD3g^27H({?!-nzxnAO zy}$mGAHM&=^MC&Pzr6qHZ-4&&umAYh_uu{U%lE(i{b%o=eD8PPUw!q}gKxd=|9k%5 Vci+&Dv-##6zBz~gPaB8`@IRJjw&DN) literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/female/torso_front.vox b/assets/voxygen/voxel/npc/moose/female/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..87363469807f7ce1787ac1ca3ee5829c0e00353e GIT binary patch literal 7640 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 bV-X&1I2$H5N<+eCG#p05VIb20sJsCHclrSD literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/male/foot_br.vox b/assets/voxygen/voxel/npc/moose/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..2e40b79eaeaa0b3ff41664389003e3b9ad6b8f2f GIT binary patch literal 1448 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 SYW|*0J%@S@|M>>|zx4&kngWdg literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/male/leg_br.vox b/assets/voxygen/voxel/npc/moose/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..f4856407d8e5f92466b67c9f4903fe69ce3ab17c GIT binary patch literal 2496 zcmeIy!HQf(6vpv7bxzgo+db|?2n31ZNF0#pCbLr}5X}f0P)B1B3Al6P(ty5!dmq5H zf)C=xR}kOh`s)#W1vk^pf4=k8sj73T?w$VZ@sm40wbnkoxcrE;U)I(>xqSNYl=yrSW3~$G zO+<>@;75#3k2`U*nQq2$i#T?1v`5L_XY)sJ+}wVAb^Gzfmo5fxH{Y4inH~G}w=LE} z=R@^jqv2H3X4C4Cw51$uJ~H`|M=u_2@aQn&)I3x>en(q)^d)<1HCmK=soA4O($@K2 z!v)Tyg_g$B7*brcRgFMLmNB$pY}kt?ZPPmR$)hdu3y&0g$|KNX=waw#=z;HiA9~>7 z+Vo&zw#69wq6S)(__*a6Q9S=z$;dR9ouvuta@+v3}vv+M@O{I+{eli=Z}dQlKMI z8V-xPrW1uIYmq3#;E||d{p6?hD8#}qJWA|8P5qs-@0?wX9y`xsH=>KX7=_54_khox zXTXu^|;Mn9|_iAXULm2zcX@w8|R`EgKFp2n1)^0W{O zzwoqZ^b>oZ*q0&^B}SqU}Gw|DNnzI}apzI||hwmo}vzJ34Y!|n5nx3{P7op0ZM`tJ7U z?>}!pe)D+y>yKZz@19+5zdb+Q9-Y0pU0q#W^Ww?jzxdy=8~x{QZtmgc9{$gF;P?aZ EH{SdhKL7v# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/male/leg_fr.vox b/assets/voxygen/voxel/npc/moose/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..ad0b5351bd60b3c1abe1962db89bb67b77f4b981 GIT binary patch literal 2324 zcmeH{PimAw5XHN@{`J>iW|)Ntfgn+g#DGK*GCL)KXhzV08jZn4z?~bH3Le3|2XHTV z5Eps{@gD7O67&jgGQ*?lRdv^^uI`x^hsW!mQ%a9_7f&!L4Jkcaob0chk(3Nu!IB@p zI$8YC^TgeZEh%SEK$29l;A4{}&!8y25jW!4wyYf;R*+;I%b0#9I#`| z&VI1$h6po21C*dg2=Frhc$LY|3LYNsg|g>&)NLb##5g1DkNw==zMSnQdo*(nAO{Ah% z(Ss{_t>}?A)&nutW3yNESnuSWTu?XIlLoW~v<9>W&NrYnpf#X1%(M(>!DT>eXew}p z15r3O+rUiWKtc8at%0+_ec)`=4fdplPD7`0riM;Kr=iohH+&#KK~}gn-b+KHF+aG$ zt#NOS`870H?`>N0NUf3k7#lxzYK_#wmyuqH15x5e9Pk_`Pap2>^1pTV*;u{YH`i7> zKk~k_x!!kfUhCV}uk@{}YklwbM!&axqrX|q`=j|*KRuZDkFWRp%iTNusCKHIy%FpmGPhdH+EsqXLB)!i#hzyH?aHz_yZal B7_;I}c_t1g_0*yqmB{oQOlAb9Yh^7S%sI9Sa5OC(ip`wrA+y`(j z_#jSv1###*96xn#^c9?RU%pwjYyZwZyVhE@R-OF()6d@f^Kl$MdimT zHy>a2g@4;FT=Cg2-@N+wmkj*-LphFAj+#-*(K?24AXW1y)jWoAAT{$S%{+#2?CW%1 zD;hddK37ITMMK9x;4J4z<@DWWE2wDb80G_$=B#v;uF|2Rp<|d2Oq#RNHM&NJiiVD1 zJ}|eY({vhCG<0)=4Yr)=TF>O;X?5e2(#k1WUs{!IY{x+0%xR^ZYDPhI-O!B(0@L+T z(l|@1sic-s;Gx!>teKV#Oe|WSwsv|R&nT#9=w=5SnDAobX!LEX=~3Wi`GDU1U;`6t zYddYHMKP{u=okp|6N&dT&la|#p<^IWk1PeUux7r?e3w@{Gk50eFit6RNw%cyHQhtU zK;X!k53LXx1qQXDV<0dgp~g}2le5s5%#ZZ&q1w>R4FslZ$@fIIKH1r075qpKUr-ym zxq-lREm5Bw&HLOvPR|y2ncC3J3x!h&HwFlpA-`oc6UkCoYtSDTk;-St3VB86ou?q$CmBu(uY z=0XA`ML(lV&wvfwI)=H}^M~c!+f%!Cmw!3&WFYcAFZ0|$*oJAGpNIToMp~rTtbd{R) zkY?(BlVbFiqtfmwC9L$=f7`X&Wr4lq#UA%=xT`$9YVR@kU>S-RJp$9jVvp|qyDIKx z7SOUq&?Ll*o(*==tgRLB1XW(VJR3U+x(5#gCXxo5HJGxK12(OAd7im&FKIk^H(-Qu zIYb-{T@t0U+fQ9>>uOsUpDsRKe0mM@XVP^N4GJ_b@#*5z#ixr;x1YNBbo;44Ns=+6 z;GURl$3S4xEZU>cOWFigSA6Jq5~E|73wE-r^mSPIDH6Ki?jYhre~%2kzhN%e$u3%_ zBq>IZ%*ln7siH@XVJ_IoF5078tBsQcBeP`(1v@w$1A&RPwWF^jXgaR=d=WsFSH;I# zF}KFyCZp`l2oDh--)}B7`!rb%zZ^E-A+qSlxMmyHF-%N`ej_D}ZDR2l_KWVxIQuvspJM(um_FouJcF`&c;;~OdyOY!JWQJ@O0cwQtWS1=he|qkGY_k;KFIn+v2lQlK1) z-eH%a8|PE;J3~BF0anz+!$~lOy%Ay&Vi95yVi95yV&UYTL*1fdGwZ-14xWJy$CF)f z*Yr}0Jrv$ueD{XV&^7G~dUV%Xs5pdu5#kW~jOX*5Q=!(iJ2w5jQtjP9Z@m8|7VXjK zW&S>u?i1BM73?CfqU;?c0@RpTv`3HY*+U%Y;ed2+2#xKo2OF3)Yil)%r1)f3W4||! z#&!$@CKM-baXQjeDjK?iHOvLl4ErMV6CLuH`v25VoEA?fm~*arPPJ;<7jq5xfITtA z!96r|3fofqq5SXryG9?Esa&h{BYylqk1;)`n91h z?b8xHcIDsINQU0MIgJDB(_nL_WgU#}4Y#wy zT(FZyf#-LpV-!?q%Ic9F^F@9)_(Hkh1*D z6)4hGYDfXkz%Uo?&wcN_@bQI@FMNFA+lxck#TS@E$1s<&d-=kr?xCS$AaIt8hh46@ z_&loXhHg9%?oHQcr9-ZCsKyQ5cp!`?&UU$`M%U<2jT^f0Kp0P&vwL3my=>`pY(qC5 zY`8bsG(2luv>ES@hK^w_*c`qGH7;`YB4>S`P1CwjP|?umg%7<0N_udpeb9Iw{JehP zqX#wkfsf3wogLx1LG`AToxjR%{X`DUJN=*DBu^#={b9J=vO ze(=%D!~gHu|DL`3&h7oD@7`KEZXdq?-tEJ0e(mh`za mKf8VM{9CuzuV3H!@@4&R{NK5^_R%+Q{qWWg|IZxQ`~N==8f~rs literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/male/tail.vox b/assets/voxygen/voxel/npc/moose/male/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..7ee0d8954764641163b321492969d63e86df3162 GIT binary patch literal 1256 zcmeH{u}Z{15Qb-FvuV6igo8s)F%koE+FUv%2d5W757g)xEDr2!EERkNdmlh-1s}vl z@Cn5C`29DcuV9mfkNN-InPC~0J)6$@k0Nqdlt&Em5s93X^|%uZ7i~k#IJ>CJ=dj6@ z5_3K_^Iikg&La9KRwBfiqjx-aJ|sJ(XQC1zj>Trid}F@Fj*U#|i4ap^y|SKAtFnKC zQWHl{gxUo!;*F?iY@+^ne^fM==UtQT64G85JisvRW4N)3!P+vil^#Z033dkSxGHlT zsZy@|v-*uS+OaK4? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/male/torso_back.vox b/assets/voxygen/voxel/npc/moose/male/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..a13f1414f7f66c6f40a98e8cf241ff96e0fd8298 GIT binary patch literal 8456 zcmeI%yUJ}@RtNBTzpb^8i3kmalwwI+Al)WinNkg{eFSY#OWVSr!OX-^!ACIn0n7y- z!qCK55Ff#O`y1<^uV7MD{Lff>tuf|p+~@b_Kl}OT|CCbtqpv^yF_QlK^OXMdxH z@Vne|RJ2~^fea~dRxh>ov|7$kf^ITrnHy>!6;HYr8N6uS)jpT`YF@8bo3Gb3Uat=w zZBSpYeO~6eb1s|wGhUoc>?7xTtO4?|SM)c^&N+EbXYUew4SIH~Xu5XGfmw5zbtI1&%C&d({=B+94Cl2+h6458J-6zd=*Hg5 zMdoTHq3N7m97sOLLOgfpYzaA*F=8Lr9*y>)LB&_^l zG;=|N8t)K>!l-zlL0x@>Yeo2| zz7^O7Z!sP^&<+i%-v#o`AF^-RH)wE9VYc)VZny7!_T4rt&vOfmTi}ES)jNhpzxPgX zE&K~Vx?nEB6*{z_#xzOU$2lM8jE9l649W8~$-{;*f=1^_xzO2dk6q_S~%j8dUEKWJu6M zrdb2*Mh2bD8k#jggX%qFr9U!o38+V)+ps*(2(S_OK)|9~aawH4{JMGW*52a0@D<2- z5_$yXEod&7o+C(0G<1B^vGYMCI$;10OhH?qrE5G;y({Qt2M6}P_JX-3Q76%%!DTDw zQGKUMX1gwW7R1-p7R-eoIy9J{j^DBMIEJyr*=w3(l0g?br{o76T7YKq*6oOnjoIxNo!*F?ss`(T zFk9w54z*wC<#Um8u0{^F6IW#b zKbvFX1B`Tj*QdA>WJ@> zi)0Kfp#JJGV5-L!nvN5VlK>S7|0TydI2^s24>rDo{|dxbeaa!H$Tpmgy5V@fR4oT2vA$qN zq3*W?rGypj@JNAdRp}6+J?c7*fn=)$bIvfHM!}v?X+@l35nv;VEcKleOHLp=y#m#9 zon@p>mqH4~8`M~Mvv&$R`3=Prkuki_j;PjJKu~s!_72>VU55^w76ZB#eh?h`g1PXZ zeuxiYn|SaFondrC_jJq7X&2n zA@mcen7%=3caB1C$l*TSd=USOBJ6@3umbv_5Bvu%&r+4XE26%2h6Td%Jb|%uRC4i* zPa5H0vWGaN?cgY37v=*6>{$G5Mv>-ObHy&ams5mNex)ykaVMcYasWBLt2oj(kOP66 zZIBC!x53ia%!^#~H*((L{EB4dIT_Cb6#&==il+ttN&JN@ohMN>IY&jkT8M2xmL(EB zbUf_=4-EUD4-EkO(Tmb&re95gt@zD0Wb`NEvVQg=zOp@qK9>{UgGQqQQ}A34=+YA% zkQkT{BOx_F&rr!fRs1H$m0v)}XgRwCcA46J#&e1_$32#;M-uFd*OLaLP99B`k~_YBKr6d@yhGz{Y>n(ifCFsta-vb*$Z zYZ^LD@yFOOU_$jSiDPjA5gl4Zvj#Ycj|y<^{DhuJGm$#j%M;ecmnY=%3DF-8Jt&~0 zApA@^LJ!kpFBSvg!ranFD}pKhFI1QvVV>qys82+&qguPH9L}54;#7m&q63Iao197dxUdTPs$b2Yn@r7JenD`iphbStIp|Gx( zbw1``okG297xqFbCIXEqJ(x$*I_QPA`&PF^AMtG4eFQmh#ll|5fhLtc6yGpm!G>%N z(SB+t*b6xj?xPuEFXZCeZH^cm7^QVOPfgQd0AU2nrPc(2gS}WLtgC7loaf~{q40?q zveI=jR8ma1RL}=0d%;DSSgt2WT?AQfXM`uVVf;_wfNSH2im&18FhIc& zZAMg+PX)pRBN9Aj5h|uKKBM1;P4=Mqj{T8~<$hZJvn0bmR)Me!*E+ZT<85e%0g0X? ztwfmEu)uW^1${Cm7YzK&e0Vo{9(i|TVIwX-xq&$12tZq;IU)zjF?Qh}n6O~qRo>B? za**R%!lebfFduLvc0mqK@Evu2A&BEHo5AKp&C5G z(@OY(;u(lJpkDg$%bgc2yidw!E;72DCF;WCD4c~Eu}^ncWERw0pShS7Xwal5{2WRU zehyGkCr%j~2FzRU?obaX`q=?~&Nt9FYz3h6v3{F3oN4vop_fnHL{y>TLu3Lns2#8a zr&8o09HJ#Vh|EI{!g@kd*Th`S14q=1Tc>i1Ns*%j0@ahP;0xuW ziVp-R=}{EwRywk|d~$m-pF0E>ee8f-B?m4f+*jH&K36X_<1Q|r%S+Vd zi1N?4pflFp$RaLV7ek(5%plnDe>Uqv_2_Nfz_Wv*O~DTeaC)}`2;&zR`G3fn7bYxl z>1f^f1%7M}xzmqJaIkix@nNOtEGywruSxO3+xc9~z|#V2!fhURghU))Vsai)k36|#Hk z{E9Wi6$rUl6Z?^oU3;+2xM+8!69bi(hV6m5d`rA0i#>7UTj@Bl7tF?rb!vjdec>fS zk#T(y+={!$;yLqCSMrX?J75Uz?;V?$Swb+q7!{s{$8+T`)xCIu>MpxLbq8I*jOO** z-L8>5%VlCmc9&YU0>y1jlCyGnYOIwT)M(N`v*zy9y^e;=<+JkLZ_icpp}1Fy`3Ni}X)_UxSqs-fN~X#Bk@nhp(HMiW{!aM6ThG(lCI zY7)%rH_F0Tu6K}Snza)`ma%gCBpL+Vkhk^u_mn<^BE7zW27E z_m95+`TIw|_3Q5+{Kl`ozx=h&-ar1~7w_Nw!Ee6*`r}vcKm6*;_b-0>)%zd*>L>5N z`1*I=-~Rqr@4x-C-+TY(zyI_5AOGfO@BjLbe|i7iFFwBi_3yuU|Mbh>et+}LHxGXK bzW(p|f8TvaKb_5Y=kVP*{D0a&M1cPRyQsC@ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/moose/male/torso_front.vox b/assets/voxygen/voxel/npc/moose/male/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..6b639f8f299b14c60788457e468927160e8dc8b8 GIT binary patch literal 7640 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 Hga`N^G+C#* literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/chest_back.vox b/assets/voxygen/voxel/npc/ntouka/male/chest_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..1022df265b49ebb84e38685695a22977d00bc675 GIT binary patch literal 5632 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 F|Nj&Hz48D6 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/chest_front.vox b/assets/voxygen/voxel/npc/ntouka/male/chest_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..84b1d1fd05f0cb617146c86aeb9580feaf06c60d GIT binary patch literal 5820 zcmXY#4eZv{b;p1A<=nUD!PYHX(zuwFS+Xf$gBC1;AYui@7m9xr@dd@g_$&YU`~99L zAZk*kSc;uMv=r@HY@HTeU8{vvrE7;ZanriKtchz1b#^AJ>E_yHo12=QeXiM)oZRWC`^`%$-?!KmJE!-)@>!%da|rSO@$D|4;9uy>iV}%eVeUoo$*g z_@>E?AH|Z!vDi_f4LOZs_9MxIan3R_bv;X)a~$PH`jk^^XmgYMkjq%IZxd@V$2QPP ziR0WP_QqbaX;TsSXXZkmvx8q|KCnNu!kvb_DZ6pZu8YODLf>#UX4^U$v|a{d8wRZl zgOP_^9B?M|F66OKth>Z~9;aq7N=@lglSkGKTL*bJ99useIX~qG4 z^^n`t#F3Xga(3D#Z>LQWZ8V)v zRd?6=)S#E^d~A?MSZ~_KOKZF!8)Iq4UTo)sMUF7?$+AD7i;SEzU9j-s4N~JqVhuXG zHd@m~V>*k@KKijmZ)eTO88ZsTjD6nY?XjAAS?`Lcnd&i!@d!*0? z&-+<)VUN^(Az<&&Cf?Xr+n9px__GXKn|$k%@0#S1&5r_e-lVoM(l+=|<7+>*#>6h- z7mmA(4`T;UW26hrc^g{GoDTt;VFToI+!LFE3}s|oz|S}rS+{9yt8cKgo0$X$rT zu0c;5A%ox4H3^+#>`Wd-e9$rH>w3y<3h2YfkJU+}s0e$Y8TK%YTp-lN=kHyAZ8vpF_M6p1nP7sFosoUvn{XU){L z$efG3CF?O_TlPZ6#a29WSG!h<2D#!W8SpSQ<4lZ*fOWp$S74kgU>0#jKN3qW4Ul7i z-SHE~g}BbdP4bMTfh>C2aflG{orpJU;#h3qo-h*h2*I&Vyw%uDU?F=#-DfR+VmrZ( zf(^a3ony`$J9c$1@gMN(h%X1oM0_0b!4sFnFl2&no8Yl0=f#hT0b2yzfDF`##~;`a zStx=5jc3lmyW#<496TUz*=ONPYiJwGoblM7vxXSMAB|z2vFDtV20M`hz!UKU-dWJE zVg+(oV$H}nTkK!QRelqQL*j_Bt7jZ}!eb-+LL~5J*oburVcgUhGhiitA0hARyF1?9 z;UkW_@EdGuqr)x^yEyWQ1G5-cdsj>)Rwcooz7zHe`A1ya(3b>;c+Pmv(0cYX-r?g8 zeQa+X_dtz9Cd<6#JY=kELqQ$`PvdxN?t=pHogu-`#SS5SpyFR+(G$P&u@m?@;yx3% z9{ofjI)K%Iz2KU}h;7)9-2_`n;taXWaV{HpfG?7UlR{pTX4<5+1)J~=)z{1klbKi$ zIbl+Sc=RWbBlxOk9e&ocmWPvpdn8Vq^uE5C9ZMNZhBVydE5?x<3wb7!V-js7 z-vp?TYeFfT61gUla{~FMv9x)x$y&kh$Tv`k(>596&_a%Un~1Xr74nkjyme*lIpc_T zU+-jWd_lGXK7hTxP>bX);inltGsL}>(m4T>6D^dek9?#b;U&Z<`6Sl;)Iw5tmt6B= zAwL#k8h!A0A5v?ng^H;;1?)-&d^fEHGZX6(KX%j&7VHVUs{^BKFz~4FLe3#KIqC~5 z)EB4b`F~sPb`>W=b&i0*HaHv8Nk5= zHd-?zHwNkoOKpTdX8fYmIs$woR}0t>au{c@vVe^NY>ZF>6Ejr6M@y|1z(xVrBbb=z zTi&q<`@JWBQiFksLM>b92L}%*fsq+pEc63-7@=gD10M?%z{Ut3Ch#zzXRa+ilCfK$ zR>TFj1<{Rcz!v1K4QzW=O`3UHxW2-uPaf zf(|~m#Zn_MFUVo}t|+V}WOn#W0M~=1j-YOdwf3hKustNcS?GKAINm?A-xmD8kgIvO z=my9&=rV1##IdFBB|k+l(xR(WjG@kvnmYn@JNA#%I|&kS%w+HYn`W>qvoF`0Csx13 z2f>U?E7S{tJZ&<*5$(wHofE0;eUUDMk0HU6dOyK0*Sf&tv+zq`WO86DSSKDHU~q7j zx(=Sy5`lM&4$Q*03*RaNzGcBikmtL}bDz)TD88v8SYE)wY{5SZhC+dHam+!N_Ul(BOmMTdDOCeCY?UQpf`#R(~w`M0UJMQG_4zIBV?+gSLvwe$nz7~9^*L2oVJGLWw% zP^@J8#6BM!eaM>LC*L>A8^daQldFdO0qVyK>P-8>igwRLsXng1m=N)Ym z`93zRo74x%y%olgkwNc$qHY=VBB@V-bF3T4$Hezmgg5s?A(=kJrndpvkvD{~6?ht3utEKfMPA4y z>}ad3)I(52{~UyU=;de~d!dHCx!S{*-X?_zc3;LpaF}_dOG;@Efwn>h4-W)wMdIxk(P^qnT z@L|4^$5*&F_(30qbLbebTXC7a{HKBq0(uCxPuL*hC%O7cfY=jxE5QaC9U?MD_U2T1 z@ZSeEh`gg<-yn?9Ly$+1RXqO6nK-f!|kJu?BnNSaNQ|e^2$N{Ei(s zq_5rd8C~zpuWgU);7$ zfAIbldf+4T^{x|V>YI-}rr+7PLGQj`kv_TaKKWf=f={K&Pr>hsu)_>YNrMs_Mpuc+TZhdIuMS64-=N{Og_ix** z53irA|9t;Cy<^o(ePPFCy8pUU^|eQD)g5c+=(`6lR(H)TdgrcL`sATo_4@12(u*!RRoC7yTQ6SuQT_DZn{>~ii*)Z3x9H&) zAJQ8quhiSVyh!gpxPH$COPDZTsA&uR1Nn>Am*Oh0hRVx2i!r_J}js?Fnjw0Zk`I^+C> zy5ZSx>WokA(8X&f^ut%J)~(Myuk&u&tdIQcb=|V>LEZ4cmvs9JKh`rIeOiahmguzA z*TeHGdd9|)erVMiJ$dIrU43(}SKPi!uYBs5o_5_>=kNZe&c1p|n;Y)ZJD&NOt~_{L zXFv9;4&MKp`o0e>*7Si{+FboL9h^C(x9$0nPL2OeXPkV2o;YWRUUKQ@^n)i)=snxN ztGC?vpniVObGqxMZ|mfWKh@n^4(qCgYxSw!f2aF5Kc!oi{E03&{an3p`Zc;?&h5Hp z=6e03Gq&p$E3VK(+mGm?)8^_Gr!LZK7ha~_`YFBP4=&fuv)Ag;Irr+p<=b@i?0Nc+ z3wG(cdFSZ6Z~r?{`i}n9Uq7pR_aD%$cig78+&yv={Je!aZ^2nQ yf6fej^UXK)`0?X<C^SZ6Hn9{|NjTd#nYbv literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/foot_l.vox b/assets/voxygen/voxel/npc/ntouka/male/foot_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..75200c626e88b2615c197d750f5e13e3ce2a3083 GIT binary patch literal 2620 zcmX9y?-rJvg{ATLMB7vpe?3g!BTDoghIJlS}5gGE|wiQr{jF*oU{~3 zWL!jWPy$xKWuOcMCR4DTK%EXGVFQ_$nJ{B3!;wtl#&p?+1F~n&aVL55`+eX0{_el$ zJ9RVXeXm0ZF@1d13<~jZBt%Ws{7HrR2mT6(`v^zOtDj%>wWh+~`ap=NAV_MfGfwG@ z4P+`XL4p@kHVBg@R0-`=R(?yQbfHLS-U*#ZNGr1<5~;w8RAjr3(^)5ea9)jO9CH!n8CZE&Bv1NnM*Tr}8KalCm&Jh18=0k#s)Hc^78AlCkf@ zI4($f9cCTjrHq{mGp-;}od0#=wMO3OmQ z_#!rpW0-?9GUKdHn=nX(RwN=D#-R;T%F5V=tS_I>Hwc)UOjw~(T8f;JBDRFfBalfe zWJ)QK(Mn{E;u&>E-4ixYNzZ_c8JDh{1 z?u^KI>QP>D27)tHtV>(kS;olMNZnhJi}HG*NCq}Y3M-N--#f>9tlLtT?4#5{CU7Dt zS*!Gn=b5`_?(C@W9525Ch* zrGi+iAY)XJvnt3s6{J03IXlm}hC0Yb+%u&E_LuiG&oq7T+4DJ~E|uUe(~n^cN^1h{ z5&amR6Ux$-Fod;?LFp~eY>5ZW^r z&oe?fNn7@cF!U9YcQU^d5${Ee8!;#9lJ$8T<{V+UlahO(3W8Odd@==$o9{L4bzwlB zhiSt*+LF)ggW|K|Swz2vJvHP;Xv2if^NE}>{AeRmKV8|gaGbXQp!zURlo_ozZT5(=FR*HPmGNTN?Rjk!&$)3Ir(kL zTSs4(=guh3n)eiS)@2Rt9cv`>S!_(Q<6+TZCK3j^XVUP1rJdEKYXp#usfZcy8(>99!0i%i}8X zi&5pcdZ8QbQ^p}PVI(e&DMxK(8TLK?7{1!G5nU69Y^^TG=Z|~`SLf8C zYhg7uPbtHpMU(OFoN~ldN^yI^P^=vHF!s+HjtfgC;MK(yxZBZ;xN0Oi({u63jx@ep z^j-X|bt*2k*5LI8BTzTC1b^PujGgl<@a3^BIJjaO&LwEKuL*nFQaH4%41d|vi1jr^ zxVU*1_AVZb>qpjLb3-Za9heTB-GrOl2jk|UAL3-|M06}G!KJn$Oc>q|e?7eot+hk& zT1y!^;wpT$XA~|zRg4#!zmMkHq4=URjjLyN;Kxnn_|=YDym_DnPd5$2xov}hll}0) z-a+U+T#VoC9ftqBJqbOh*Wm1~QsCadar=BFx?g(^zdX1d@0~k`Yge!0&Ye5J1&6

4PIj)rk|iTCZN^|UEG@zG*^l9wU8~UE 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/hand_l.vox b/assets/voxygen/voxel/npc/ntouka/male/hand_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..0b597fe4bd9cc90a96c30402e14408d159a94a7c GIT binary patch literal 1320 zcmW-hdrZ}37{`B?gW$9ktNw5{m!zx^jt&s;2m%L?`%OIDm7AVZTuz>$D>DTruX z1|Cscpr!(8ib4vQ2C`A8dC85OpkZw3EYen4==${1vwik`-e>RoeQ$f;97u=%qM5gLIgNpl6MY3Y$uLTAHIAj@+~WyR4VD^7wrC9)*Ys8(5{ z6w8uBsVr-X6-6V|!73{ni>x{d6}hUG%Ia+0u~?GlSQS+*mQ=MwQXB;uizGV~OB%%@ zsgg;VMffRV9!1uOzD`y}5eQF3o+E0GLY*v%Byvggk%YhOWR)dHt18PTRZ;ULjhwH{ zBG#y=jwOnsmP)Epst6>J%ZgaDst8}nBnebmF-gLAUAR8@{{s+vMZ|bp50eFZNn5Pt z?XI?f}gYdRvPOqN@56z$t9aJ3gWgbY`f4kA zR$-zxM#rNSZ!)&tK<|basv~?jx-pz<>vdQoJb9kEocy47Ihf$haBc{vv;28sH)D^UDKFw^o)15_ zWK)^s&Pa6vtyykN9^XoJh9@uEVxfO0kN3Fo_~`p|mxW@_(=uA_PKftHez{ObnPC}c zY(Chnkvwc!&B%5S4w>J+bA|4O+-h}Y;+O~D zwtDf;Bi%TO)YXVIa}C$90F3?Taotr-P=B*E04dYu-#IgHR*z5-}9ym!7{gy#voOeHK$N@G!N2g!xSq*Tg#@*TH7eA+{TuQ z5;mJQla!W3e0&7!LIUvh_e1CD%JlR!6B82*3=GiK)kSS>EjF7CgTX*(Xecf&E;u_o IGyC8D2W2{ur~m)} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/hand_r.vox b/assets/voxygen/voxel/npc/ntouka/male/hand_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..d2f8a7a1cacb4e4b1c9ce5de538026507ca95655 GIT binary patch literal 1320 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/jaw.vox b/assets/voxygen/voxel/npc/ntouka/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..2026b00ddbf815ab29c5aeba6e32d10d7de46395 GIT binary patch literal 2312 zcmXX|eQZ_b9e%&hxy5DPnEhc`$Yj`T&=yj##ZqV~AT5-ST3RUOqfjj4!oB0(b8lJ- zBzDkRi-R^`1zZM-ATXJN?F8y{MG`iU`7sk_Y-Ko-N!*w&Zfu3@*>lWJ^5plv=ltH^ z$MgK&n_IhR+4p*d5DR8jETj=%`$AM#ET3~}rN%Ebi&wY1P#$}>hqrO<(i$dro64UUjf1u~*inrkf$^e7$k zB06PhrICRYDyqhnj%uf)#*;}SOj0V%@2pv?jLXt7ZRzLOkD)a>X~Uda zXKa|ysFdYdC0T4;(V8)o2$WEPQX*|E-y7y7UzRbAlo=bw^i@)Gt+Yt% zEE#hVrIavfE;uL;eZ!X+vLf zqeB*yCVwKZ>{(fnl9v5Ao)OHW*(+yNh1xKW3;WTbmNH{}*2Q_WRtDN<@4O4f@O{XS zkx3^^$}xr`&rX_*V@#&YICAEg$59VwWXiEN$2sw=4jeUhS|&Zto0B0#z~Yl0YjV`l zqc$uo@Qg}2YUntBj&tTYo$@&29`BpuJbBcPLFuoUKlGP@N8UX0=-98vne})-9OuoW zrj9e@asEBdx5qj6G|yU|r9O`Rk?pu6$QrGQYjR)-6CnrW!4k&f-Y2p|%tXWnpYz}| zr>_*P3Iz9pd%?Zn-lsmkQE5RdXnn~w;agh5XRn%diqLA2w2EMF)(GBRkrb@gCxq64 zPY816e{)ZHFUXrAPli00a7_*#pIbIl{Qvh1e1;D7;l{>iQ1?(C{{7BXeEsq{tSczS zKYLH2zoH(Ww|3+G=gq;1#s*v|EyFLS72(>&0d$v_BA7K5mu3{9rmO%59(xpD?c0I=*;8OXW`Y=#kkv> zK&oOY`jSiW$?hb+T=iZ2tz{lAw^ZZx6@{oR$-|#}64~z~S}tF}Q)}4m4q3 zYaB-!3-FhH4cK0tgG=p;v48b=+&H!c?e+P%cW41{ekX428jo8?euUF4v(ej_hs&)w zm^EcI{(80xEj1JHT5|zNhTWc=stIT$*-1?PM6fqVbLoeO0ccViDqbslD=Fo33^oKX`;xmQV)G!VmEstPrT@G$t zt;C&=D{=R;Dtvsk8>e0ky-^z`k;lY6#dblVK9 ze5DNqwZ#~_y$Z+wcn+~0DdfiI<1uPFZf^n|$DV_DdJ`gR%JJaBQskr?Al`cg;$%0( z$h*j%GaXIm-$3?L?I^9U!KCH2Xt{6^g&X5I`sqzH_Z~#kffvwr=_5=&b{6-Qm*HEr zYZ&uoOkSVH!_{>d(|H`Vn*uD|)`ewfhA?4u21R?`K;DW3#M+(Me(qCL9Un&CiR&13 z{{#5;!=>;a%!OF-Dn?C7U~Bh>NMv3@_L#Yd=C@TSAdk34>9mMn97tpow zEyOB+hCR*wsGeSrGkboI{qZwsF8e8pC(gvYu`AJ(zYTRcjrj58HY}}NioUi1luRhV z((xr&HGMHsjR~y%;S$92>M@wV8^PK7jr@bR^e%q=oAc<|e+Vtx zw_@|QG@e-h1gh(*v1m~_9-lQGg~d}*l%I{;w{K&3co+i%12}o|Bsx1g(cIjOnwlES Ro;@35$Bsob8b$bj=6_S=@bdrw literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/leg_l.vox b/assets/voxygen/voxel/npc/ntouka/male/leg_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..dcda134d5175d72570a2bc691282ff964ce63128 GIT binary patch literal 2096 zcmXX`eN0x@9X?<8qiL6wEc>IeF)OoVQ@{o+SOh`D3W^^T0RcY{ENm$6y!XC0AVN~6 zP>P*Ev=nVKY@JqUZL5V<3nz)0mA$x$oMNF6F+JT0_m94pj9#f{~J#wcG2>1poOM*3RwTSapjXzhktYENrB z(9+_%3AD09ZS1%eS{c@K18v!y+rBZ(Njq+gOH5AO*wLC5XyVis zLup?rhjoeBaYF6#ywag|EZ-=_k$82~--&CbICAbry&O*)71x&WOjOU(>>br4CuKry zv!_Lzw#A-0u5D_-(6$bgw0&(W&MnrXJ{Egh>}yAPH&hNWI^;#3#_(*!M_c^nenZ_{ zoBCLua*4@xJf&S~MO+TgJLIT{$I+gomdcWGWn`$d^rf;w;gGKpam8;br7yIMOWTPH zB?GC2FOBk~63lB)N#QFkJf%b+Y~=}J6t>}h6ITpDjRpA%>L9fpN{2b4L!nF{sG(5N z8v9t5C#~p?HP1$Sse$Fhm56Fu?5liXTY;col(GX!%_Q$%8AA>Zv8X`s9;GIaD6h3I zod_q-+ct4V99d5)_HumbvW}&wGy76EB~7T9lhIyBQD4^LeJja2)KqDQ=j=deVzJ2E zcIgR2?uKiMT%ACfC>P;&LqVU>=&VIPj_t`vQ*BXeo{#d{CVqO|)q$|6gF`;Ncd1P% z?5HPeTPBqBiK1T8;+#4udRj^qNXb5~MIKh59O6^tLN7^4?deNJpD2fzTsu@Y`$X@D z`YD^-*iSjE6LF${Bt0#;PtY5J??I^O4GF$62Jcz(jtzZc=ntb9yeDn(4GQ{&?@iD< z(qb49N}GOS2(CZ2GJlyc|9kcV{7nyy;@Xa3o~$R%SybrAq#$C8g6Y`h{n7h;K=$#xKO(suWil7?SUBlqQw~XD)8w6 z4_|M&AAf0Cg-b1^cwb$;jN)&JXxQP$(|(O^c;LR zn1q?*DfsPRI{y963QV8fjdT5Jz@2~M*7ZZQjN6}=;FBwT zIQ2q4W}AJw&~SX1%{p6cI$zR}g_ zKeY>EmyTk4<3{XxF&ABv^;lJzgZ!Ell*E>yfAk=p=xxKCj-}ZAN(VB^vys?df|Gw3 zN8?@}DNU>KDDQOM!5F$uJPYyEPTaMv5cjRkLvp+Z;{8`3M*1LT-$T-h9MqqC6G=~Y zBCom(4^@?;<@^O??r6gC&#t3+;0WpuzkrU5A0z$5S=>{Yk8hQ4W6hV4-Vn!wrInc5 zeG=t615~v2VB?u-EZ7<%tM^T$Zi+$F?nC?dXDB&2gVf=xxclDk;M))8!M!g9V$*B5 zdr=H~`aVJ|`~{Ncu0%pwC)Tce77xrV!~TwUv1|JgJlA&~Jv-h;WAXFoZ5~5uPBqT- z{tkmpXV9GgGh{DZhE<81QJ>a^%H%ryB)tO_#T6Lsm_Y7=3{=d|#g?4)@atlz{ow{Q zrB-7y?Ep>|wW2&V6MxL^K~3gT+?o9wU+Hc9>euJcKRASz_C46u7RTcakE67*6zkR% z;<4p9$jn}hth6NDym=EdGc%Z&n83)$2)etw(cIjOva&K16civaF%by~35fmy{tIG* B@?!u1 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/leg_r.vox b/assets/voxygen/voxel/npc/ntouka/male/leg_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..dc8d12df67baaec77a6f45b9dea0c0a2e4644cae GIT binary patch literal 2096 zcmXX`eN2_t9X{Xh+qBC{mi^J#n3Y+wDPRK@EP^0n1;r1F7Xg-Hb)6TWaHa9eT_OR?GPoCfJIlqr{ ze&@WmY~9B1^$Q`^EGt?|68HN;lonO4xM$Yk&k}e29~&zwi@wscst_}Tlp?AKsmMyi zG+AoeT0}Hi8rnt#+K9LmGOC1(NGW4V%0NpQ6-qK!Miik5qhw5IYML5ZYZ*6M2EtGy zl#y{wHe_k(Th_6RnYA6`2`N;dgo+5MqLNTj#kEv1p;TNd#a@d0RP3b!p;bg`#%L92 zveAq)%rmS()`oGkg{5YxS?1CWCo=$2iA0M~!Tpj!KWU zJRN9HM-8ETt_#Cin3$A?doi4a34}7-iwTr6QBB(@!?_#IoiT*g)aVOC%^2>58f`-e zYXWH*XIaZqqc0rm6Uv!D6NV5THIH!~dwA4leV;vj6Vrs0mUm+#nkXG2X}-VHTFjnK3WSy<*0iqMuCSvbZy8z@JOY{9fAi8qx(yI_|}BHZHD|<2^avk>gxkOlikA;hW3K1859WH*XiJ}YKJy5vyqHoR&+qa4UZAuW*Mu-0-v!sm+Hl=^ z>_^|yxAdLIJD^W!=W+gA_n7a|pS69DJy=8goT<-u=JO0b&)~BbZ9-X}?~1l#jPv=P zxbFF}$5!Sq6Xt)Py#RkxgCn@M<7repkcxl3dj)@gX$;#lvhk1pVT=}4;ft1Dd{7z2 zr)wJVpR3pK^OhETaBndNAI`$Qgk;{d5L$%eooR^Q6 zmt;h^AKCU7#EjjA(Wqi!;e0KZw~FnXu%?kb+zG})_QamXW@&7zKh8XA&hP= zMn_==j%`_q_cml9T9}4gn--!W?*}-tei1IzEXQkGvvIpWjA+qfj6}-u>46Bo-f}w<)UyejDId%X)t;@nM4}|d6U=yCKOUFca5^#DBJ{(BG^zjt@ zb|4-9erE-y&hEy!zBJ&@KXL1PKE_{v2Cp97kM}1gaCLGLGcz;51s{JMpNC7QwqokT zQCz=v86RJM1J|d1gQ?%Yg%_XB#Lnt@=xlx%H5JLYaitiyJ}JiS&r9&hm0p~BAs^Ep zEy3}lC3yRME_ODg;9&oH?Cnm$>5<*owrw$1ubq#onpCVQc?3`O?LhCyYV@7jh0#k# zvAtm<_Pm&j&WSp#s>nfpbqY$t%g{G+5Kr{9Vov)~Y<{I38D-f>Y%9UZKa8PaZxktw ztMMrBbl$-*I!`(rA!_!aZR|6YoSa7L&{f=h?|1O+2lL?HmjbcrHQc=@j6J;{ zAsqh&lIE^NLRtsbu6q^_%nf0G`@7h+{Rp1xJ&*1kZ=<33dGs`mqBN%pXL^2zfyOgv z%KsU%7cRr9#LcKnYehwJEq;>Tj`HGijI@scq=jUQe&U!>^!>IY;1~jHtVIu7S zP8PMGEHx8<%?{{a65-xcyJ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/neck.vox b/assets/voxygen/voxel/npc/ntouka/male/neck.vox new file mode 100644 index 0000000000000000000000000000000000000000..46ee698128f1871f12ceb6b1179ff63887590a40 GIT binary patch literal 1888 zcmW+%drVe!82(+)hs&0%^@p>$Bx9w34ipqY5HUgVg7|@e%1t3rzWmO2&OSugB!vh~ zU@D=t@RAou^9Ctk7U;6PWSSc}LDSsQS*ESB(Dn2l&i3wie((2Qp7(j5voC$#qE{Lj zV{@h@&!vNj@mrHGHE=(y6OEGOpu5B(1pAy z!YT&+E>lbCm6XQ_lR;P|^-;{_HMsOKM)(Ljr;~B*l7BjFd?R#IDn z=H)aKV+Qr0-)RoT$?wd{w8^AlbDBpuHW=gbalwfbm!+jJwZjYXz=%&x^GHryaz%U? zUd^a44=9%0AP$6=(`=Fj6f5FLFqcnIj$+E9jaZy|8B!4*ZE7Y=E(CGl%%P|s@hDuD z6amGY>T{|uxQqHqQ!(O{X5uuD7Q~}4EKPh1$t@wNhQkN(r8p;_G7Z9^sfJ>l@)+%# z*^*)n+Lv_VB_|FfolZ^Cfs`gEZ3wPR!IY__vIXfxFvl-^261JO7PO!mLJ=o~PfAM= zrv~LqDQz}rPJPN1jEu0+e1g#~1l1xAg&=HnO2Np_O~EOSF}gdtBMlDn!EH(UQ8WXi zUP=%K(lT@U2x%M64rs>)nP$ps&<+gZLNkN>+Gh~Yn)a!wr$KttjI>W0HyjO;rWedi zm^S#)&^H2l`kLEtd*vo%jtav+XD;E-{T)~q8H2wXThX4JjeBMF_&&>n8*@tV->uvD zxU3A{4@*Jw#As{?48g;e7JOM$i0YYfING=c56b-5Hfsi23UYBFJ^`OjiAL|)F4QN* z!#8~r&P|PmJ0TL=-<*ucTi2sKaRNGOD)6|x2sJ6uxHtYK^e%LxeMt(ck|MEZ=}cT) z7!5Ni98VUHLvj4;*fD&aS_y2s*(KN5{*GVW}hf^+La@uBBc zc--Ugpv{Zkj?H+dFdCn4cH>mDAMX}Mpu090I64AXnu5{4Hx%DCMd05rXQ1!o8gw>< z1JC}(lb!^09odG@c5cMw?rz-b?Zv>r0B|+{zjuws`9nGAyV8!kw=dw@h2yx}_YL}f zIECGtqOdA=G^$G{B0n<(_b;X3$@LUGy_1UTm+En7R|5L4PQl)tsW{yehgHR)*wQ#3 z>uW=Cv~3OY@+M*S+%d?`55t_)$#}0}CFh{~y0aeMN3$LYRVr0z$q_6TJqr4W2j`d+|j*aNL69`-E0n6Wj zijJE|JcfN-Uk>p(v6Lk zXRvzN4t!YOgW8p+QJnG->iq3Ui_ONdy6@0bat!{2_YpI08fFD8L1B0~GD8aRc0?sI zQZmq1*@d{Vk;oVmho!OeVHS9h|HeX;gk_^Ud@~LtmmxhY3O~ivA~$L(o(=p#U+GhP z@l_`pnwn8su@FPeM42`lw8a!`v6Nc@X`x(dX`z%$x!7;tr5)cb zEd>%gF4p3p4Ojt}fie)7Ou=>nb-E%68_2xOgc(~Ij${%yrpq=qAba+F*-4)KZtwfM zzo%jG@`w60O={g6e5-#lH@WXOyvPfIFS zODkQbWT2&;z(_iQo>76GRDl^&noPOU$asN~Qh}Co1D+2=$_w>UAn3F~SmYED_H>HRupZOVfQkhm%nI`?3Y0uN6t}QZQ z+HEP~(h@OCiiG4@&(~AZ7ReB0m;U{nT^dOxth6$$jMC}L%K5UHn-!Iwku;QuxGsIT zMnWnP6O^T79bv(mM9d2_@35Y6!y>J0Gp!usmmH&pS=sSH@=Z^7~l1ogKI`T(~9fLjCj5gbwWlu%={eYp;&_obN-x_@*XM#A?6a~>Spe)XJqootB{uVav5Oduo-m&levhfL!HC@k<`hYjx~6MQmn(~ewvIWShHa!m2M?n+lWcR zk%ZD?9;rv_x>{5cN^;(wh&hC75`ys!E9!DzBxOliQkIk*Tf}wN;Fuzw&;AI@j0A*X zSrNxF<0g4qiG*#5gky<#m~tL%9(j**Qop zWR>C>U(dR}mUTUX?^p6)A$i~ByK}=@R?)5;?hE%==6Kpvh`w@r?;BYsOkF4k?zCrQ zJ=#3JFITs-uI^+dsU&rM?i%sbyvkXc`Tu_<_>CMIz>WCxXneRB|9a!zVJrT7{RV#8*@+MHYH;ZBa%|5p#O)I&@NT39JLk>7>HfX= zszi?9W+i?;wH((j4xzVdCepK~;L`MR)K`|`z>`nln|<3bIA=1>b#KKt zTO#PLDaV(OeH+)7)?;v04R%zO;>hZGczr3(Hea+ZfSBOhHmSF#y@wjnp6LvI};Qpb7!1?XCwQD?X9r*!Hcg#Wm`eIz} zEX3@|WAK-=J?N;PfH&Gp(Vwcu7yG8-(lbSPsqMRHtDlIk29mgTZa03^QjTBluE*Pl z+VO15Bn`qx}UKJz9j{?w^GJygL^oXE)(|UkPykU$}Fj5<_pifL|Qmg%5^@ zasApg+`W4jxG3?rp+|7})EbO@G>DrwuHcg^Z{p_2Z!q%vxADsJWk@tXf}I_YV_jn* zZe6Xxolk3U?~7V|dbJm)UarLG$5V0ia4p`sFawEL5%%^k!M2_voF3SOwQHwf!J_eK zT33vPwNK!=zBqaZ7NGCcMhsp)j195n*!;>2>>O^v{KjdhY%W4=+br}A?8P&CwqQ)x zbgX)<3#APe7`L?+$Nz8+v27_7wJyMuoarNb+pzQ4i_o4+K&`F9gNtUOFw+d}gV&&) z?1gsseH6@{hL-bhq2SpanAud1$5u3;7ntMvUz~j)p`U%eM4j`I!++Sd&Hhp0`lEvJKk0?bv$mbJQLmMe&L2 z@bVr&@aRm)2aBMsd>!88Hf-+w7;V{~pCl#*5W1%m+Z#z>P|Eim*I~UJ!meQj{A52&R2R5zxwrg^zA={ zj;))qaZ3hIN1jGqV;vSRuEJBZr=hH33d&0gaQpUcjE;_CXlMv0Po6|~cQ@MG+fiR% Tk2!PZVBENI$j{G5?ho)kJ`Egh literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/ntouka/male/tail_front.vox b/assets/voxygen/voxel/npc/ntouka/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..993673706a480e94fabfe30a5164d0e357d77c3a GIT binary patch literal 2460 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/hand_l.vox b/assets/voxygen/voxel/npc/oni_blue/male/hand_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..b1fab7546ba95ccfb368a074c8fc0ea48035fc5f GIT binary patch literal 2736 zcmah~eQcdo8Gqh$p69&pdpmHUU1tk!%hp2MIcmF)4%R^TQCX=Sj7nwQy|)(wxVrmZ z$YKUG4F;ANr%dKtIwiw7&4OkLvZY%T{}_$pvV;&^h#!dy;Sb}VCdL^5`}sSU#6%2u zlPBjr=RBXk=l7gD^}r)*7DQxX``8{Xa=IikIW|4IEN=MADH$d1AK5oORuBB(@8v`! zI4OdcMlh*|#1|oia!9lh5^JOuD#0a1Y6;JidK$PU)K5x9>Ral8;$2G-DC(r)le8Rs zsUBRZP%lLq9POgemoGI^o_kOIpbh7!8+;?ARtrg1QJ+@QU{%jt9KSv9GqalKcko#y zgi<~ASvk0@l2Uv^TMNuHscYivKGDJ}eOn9lScmt_!!s^x@s9b?kI~jgedT>p4_0FS ztjk;Bqn$DDB*rt|X^}c>guvL&s89c)#2WKPaI|-UXB0Ey6D6xSA2D-9=9xF~b3S6n zJj`=d`gTQ{uwJoR=B$>6ct;&a%xRZ;uF75{q3o&an7fO$DDPAosWMk(Pns)pQs$|i zXY{Y^M^lt`j%UofDJ9lxMW$ABKBtcov5$6v`Q(MMZx(!E?3aa5G2==+jTjkoFxpyh zbt4bVe8ZB6nQIvPXu)_MIgrx_^;4@_l9i3Uw%BV;D~@99pM?@*5hF+678sAd9OGIG zebP63WR612l(DpFXANVI%#^zP4q4f`yl(7;Ipw+4J@qYO&z=~2;w{Fbe`C&;)JQiH~QFO0KHUc^>^{WsUeSMM~ROo z=Nxfx#Ke(jj(l<&Ysz^S&&UhTg(n_Ld>nB~$R{HP$}{6^d2&&y=bOSjsN*&Eh_NER z#9Wz!Mw}Q+iM=OxmHxGPM|{Z{?}(DC zO6)Z9m-&0m3zeMj7T++wQ>mx0&NRMh@x2Q1tzjKWUQ?GBiOZ{r&ugisWgqQ`e@M9x zc{Q`V8k%nkXOnoRMxjmMtcF0bypj2QCP-dQ6Y9HsCT09gd8VAZG_M+aZqzf{S)jzZ zW*pPJp3uKz9HpL5^BJX{QpXv2!qqcgqRf-Jj{XwOszS*uttJ}y9VM-br8V(Ud`&{A ziE?#Z$zuu1Z?2B3`I=ADYM^-GO37SWedxX&+ePEQj>y)nTQNUBj}J}=cE9o#*0uc$ z|EN^3v^0VE`}+;Sp7GD&(aJW=A0Ef0qhq*q;!#{W^%RCKJ&ENb?dYhj!J6mRqxZ~R zkWqsiEJ4oR0(q+)%O?aY3&Cy21)qIgkR24{@iq_hHN82yQ*phPB5!(RXe&2Cm+Lm1RNK^YpzS7``Hq zFEajI203{%+xKBd?=0?J@gOA3LDHAeC%?yEL~!yM!E4_WEWIkYc7gj5 z!P!y4FCG%y_=;ef`)8&E#~ zqJP5%Y#toI_~&)Tkgc6 zU3X!suN||SZpE?ty0KX8$I$Lc43F){(DpsJX~Pq^dEiO34n2)OT>TNQy|IAB(`79E z^sC61wP1N$D{g6DiBBynVauJjBxbGQquJ3H{ov4?T&XKlFfZU=5)b+i7Z3+M5>H{ZbD{`?+x_DZwU#;OdVB@9h`#ym%hHy}dZF?l8Wv`y%AX99A4!fy<{p>|y7@ z=dfzkDtx{BB<|UE0*`(B8~Ai}CEodYH!e?iV9nDf{wIFai@x?vzKuf%fM-v=iX%T+ z#CI)Tsaf literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/hand_r.vox b/assets/voxygen/voxel/npc/oni_blue/male/hand_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..2fcf2bd73d577055aa5b9e6917dd0fb2312eb75d GIT binary patch literal 2736 zcmai#ZH!da8OP7tbMBoPv_xR(t`-O{$}UC9>!J`{URGJRptzL^>YWST zjYscV2|^$auARUjMAwedjVCbTkjN7`7;!Myibf7*dwy1{u8h@c_|$D}fPb@EJXK>ILcr>IG^MgN4w}j3J^y0)rd_HP9e| zK~ACNjcXxVphlnu_mlgK4l$!c@R7ZW>{V=;kL?g*JBCQjNXG4UMnAc4h1KdJ2#dP0W;meA3>F&9Kj^pWU;xjI^=UglabD06BCXU*trR|0d^ z@ZOri8+{pl8GTthd)wuLHGMGl%jnTKU&i?|dbCy%Y*&fzBG*J??~J|U8ZhF_Sm3#Y zpYRiY!UrSHj0K)Ee8Y!m#&a~DBlV%^c-a~u(_6*^%hb=-EFl!Eqp(H-BMv@~Mo3^j z*L}#NA!K^bJnLLH$WVq%&v+3JQpAG{KIM8y=#YpFG88E{O7Mnnxg8Ck*dTYbOzoWO z35>YRnSCxA2EiBfRn!w0u?t1Rhl1YF13DOS1|QL5QIC+oAVV1o_7N}PK>~veWhxrZ zn9~Y+!-oV0*^1H9ie|{@xfo4g5DI#O;LCdSC3{w~XXU65Wj#QI1O_>v$CAF#A%Q^# zpST_(BrwQOq>}wA=?NbqBrq#SGlYzmsmo}L!Bra3RhkJ5ysyw(g)>>>pYRht7RNbE@M$ROuNF5?HA6U9Iw6 zt@55%d3UP3J5}DDYCD5Z=n0)Mfk95pW6Wddkif_@W5{Tkxxq5`h8neMd{=6GS8C%v z*7$zcs8i#-*Z7{GB{YZ$4Ge;jTa9(sSa+@U@crx8xpd=yXZ7mUnwXf-M@O7Cz4ngg zP5+nvQLk%qaa42b@j~I{o5dr)ytz+Cl#8HmAdnqwjONd;V=|taf^`v0d998rIeoJsKOF ztNmLS>ev&@R4EEAS-e;)mo3%see1PoUYFJ`o2}t{7ixHLtwuI)(1LlhwRq7&tz5oD zt7i3RsBgYTSKX<-8}HJ#zAlZexK)SlU!e1iCFBEeo_^?R?Gd>DFt99?_wnP1o7?yLC;oudjdd>>2&; z?YH!|KYySNz3%$@_ic1~g?;(>`X?Ug*RkCjH2JMB>#wKB{%ieDZ0pya2b>Pnolbt; z=@PwseEoM!S*GD>ga29o^5x6*z5bJ0vhKmQ?Ai0YX3d(VZ!9>fd)6G$(qTYG7bMA34dD ppnob}b^7p^H~RaK^Y#CH-ooqe*(Z%1^OL-e{%PLzi9h{*_irV%(~kfE literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/head.vox b/assets/voxygen/voxel/npc/oni_blue/male/head.vox new file mode 100644 index 0000000000000000000000000000000000000000..5e20a5c885ea38237b5ca9a1860d62970f77236e GIT binary patch literal 3224 zcmai0Ym8M_6<%k*ALns-4bHRz;n6Z6MVm(oR?6vn^ z&u{I^w)-EMb&`lSuN&L~L0?OWh6i^HKy>~J{9Aud1|HeIWAGu@QPWgG6e(1J(lS-C z>9lWo?Z<-lO)raTVjztk#9y%{P^eOD% zOpVUj0G)%*wW5eE*SU+c8aC?l2GXQ$U!O%hzP4pzJK(H0Y3ZQ%I(P@YLkzxS19o(Q zxQeDg>{7=vO5ai@mO=W}&cdE_klBQT^d@Tt2|b;Mdt= z!b2KJ2kBu;CymOR9D4K&=NzPU8O|eT-#8pqXgXg&#-@Rk@M&${vKHsSEe%dt@W`V6 zMnDf9Sn$V!0~S5D;EP2KEqG$lV~d(w)Y%&74c6$Rt?P>(S@6J`(6lx-E&AdVY}*v; z3~Sh^>yKVp)Y76Jvc7{l**aF_Z|j_qm!!}(h{qxqg?MD`-=eRONut`3VrgJo*L(0C z$X5!n8pLd%(~t^%)tDQD92Md+$WdWt6y`!BKLe?dn+8lrI!K3g1_>ZX1O6*;UxW7= zoY&yHscoV61{_ZkSq5<1fY%0`*5I@1+(#{uqeiY0yfxsg1ZO4o6m$x z;E4tdpwMp(7(js|x&!zF4;9`R2|HOLD}(xKz<@Ib+)$l0-jfc;@z&H5^I$`9NTFtu zVq1YX0T3c9Q$UKmj3Tcz6{SbLrFJhyAW5>(3`ml6Uj_&ut-mSVm(&n(Uk2oqjS`S0 zaV!CHO0iByQ(?{uAQ1uQ!oF14p9mmD>;g!I!@fJ4iF7mpa*CsrgwY(xlCUqSLGS_K z*J3o4c$XyJXdBx?__mPXE51|VO98!=MP*e{S`BH6%E$uq)xZojDu+EM>-VbBHlk=- z@Xi4i`xg6FH`*He9&05FyyHbFW!{c5FO|sgdw}}jycb2K!9@dDz$JLw0E0KrCa?*Z zn!kVpB@VR(T*mA7EdDw;oWn zFT9%;aOjuDEclM^MqA=+gbkUbknkrWe8f^Dp`9k7OoXp8AQb_7p%Mx96OTRAGx3N? zgAW?#bUPCoYlX84vFj=YM1p-lNa&>kZxnJ9K>aOXL&27+5}|Nk!LLN0B<@T20q~tl ziL(U%0_P-pC#r~bCThKety-7hUIKpt{sdwcZGycV`#Itv$OQK?*v$|}B4s;4Ob_0> zejTY>|G!wZY88)p60$wPjREai@U!#i)TH*kb6(BW*X2;djr#%$xLr|abq*_^!>!QA0z(E z8^mreaW+9b1?#SJ#LG8FzHfhncO06+-@N>3-Z)OY^#t*kUMGI;J>1>e!!t%^^W55mf6Jp|h)iPv5sribAFpkq3bGhLXd4 zV~;~WMtt|&+j;jY;wN`+=WP!R@z&)%JTfqw4{n{$C!bi#-dbL~Xc4bix`c;5x1JZy z>Eg9ZXY$ZJ^Lc1sEe~(r!1LzJw=L-6k>$7X z(R=6d#odd!Z__ZZ9o)%%>$Y&V=t<6(JjGM`p5Z@S`ypR{^CVw<aXOb*qOxd!OeS zGiLBt=bhlzn&bTVi(ltY?Vir>{(K%^-qFpoo;m(M{_AtKt?k3_@PR$d&z*XWCw_d9 zzjfi){Jpns@QSC8aO?1C9{Rx*9)9Bn_xJbnhr~<{;D55bLHxllZ^ick`1SwxF@>Eu V`#4!|e%xNI|D?T+;ZMF#{{|)C11A6g literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/jaw.vox b/assets/voxygen/voxel/npc/oni_blue/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..2c0c0e50d552e2cea19962755c14ea980aa3f35f GIT binary patch literal 1932 zcmaizZA_JA7{{;s^?44y!~`MGfC(sIN`Qg~I7bvo@Pvva3BD|wn&g}gn=g#nl&z&n z8ZoSg;N1Hhkf8n?#h2hRW88@-ZzY=B+*$ zC|mDo3zdlm%GCzS6CL#=O}kj2OTOb2DyNGEj1ka3q~?&l z2pA_68;^*MDc0eviaTm`jH%fh&6tk<&d^Rxjj{c7MoHn(NIUIZHnA5Q* z&PdF$e~xuJ_RuE%s86vUPV1;dffr4i-ap$G}B;dkbsb(|6Lsg?INX(OJ#mU#MF;yDkS zoQdU~VID&~-)(YFyCDH%gpQhsNySug>r{Nj;)M&urhX}zH*X&L`ugx-P|$q*Dhf0I z!XInbVr;Ax$>;Zbf~AS)uzqbF`gSHTdY}cPgX=MRbUSKBw;{bD3pp>`p3>NhX z+J*$LoE7Z3Mc=kuVcZcA}2HJNDYKx{~-8{jjb)D!~ol#I)HJuFzGXFP7A(btS(`AiVjD7QcHxI>ALII^VT>GGgR#$ELuC9oq-SPe zQdTye8lQ&h+0#*5S&Ade%F&moz>n9`Y|)%D`mmQ8!MYxi@1JokNH_x-+Y zTXtlRib&J?#%2oXb46MkJL(gCg~uThhybypy`!-~^TKnI(2nCNu`w-f)DT)xD%aE6 zrOkTESWg>EJ7cU9)7putfbmQ~c{-qYS1}1_#yBzSs+e(AR1=DKp)|hTp`Fl<@{~iL zb)wq(QhC;|WmMFP>lxNmu3yjf6zdpcV@g~0V`GN3Z9qp2A+&4dFy2Njd$X?gjH_8! z^F95PqOE5g`W*Tk`UvIF?n}QX%UqUyQz}BNW<8&WCTGTL=F-%aj#_2O*Tl3BZJC38 zTjqBS`5M+WtZT^Euy5D1eqRoK4tNCIo|bp^tq36u=dToZ%Ka(A zvWE5hW4t8~6A4QH++C*?2v z(bAc|ZZN6>EKxSk)a^nT4oUFyto)jz}%0R(*7D{GTB5ju-_b79Z3Tmzj|J}0^Tp7jW>0Oxq^cBoYT!5sMWGqfi!xM?~ zQMqab)|3WuVoNdN;S&6KqX4tF3UT_lU~*h=^DDtm-wOI8`PkW4a%kvymG$wC>224OX5E7sq6s8E0;0Y8-lGkNZgE-I8v4+adY|7T6 zB9RzW(}Gt|E7DloQXLz0csV47_{hHImf9LkgV!0N90_S+h;nHYLzIs;F;O+j zQ&xqvRi2@Wqr!@4N3l+MmMSh|uJSZ7v@KP9ihWq;Q(;4F)K=QlT8E9+A!Rgs>yR

c{ zj0tN)pK6I%=2*svA(p;4hI<;$XN*`PE@LiZR70%GIv?wZ@zE9=)?!13D$0hGqE8GF zZ9PS_rcbrn@?ID-%%K`%LzcE!)>-CJ4Y5QV<~huB7>n92&xvt)CJyI1oa=C|6XHwd zT!*{UR}SaWCt5q4OW)8p%qNB@OPd($a97rg%YLq>i747cE7vnr(e$+&*2K`(#trS+ zQMpa*;wL4grKN~OBDg;+s5y57nF)X4kM?%V&ekD%{k|Zm4?cta?PZAc1~D~Ii>cxL zm>N5Rz|>*HRU{$h#SCPe$b)};6QtUKbT5TWtc2W1LR_67*%PcD57#=dU0qu8IL!opThQtpkYMt(j~$1JFIO;MOxPyWJPjOGFgFDJqcJdn2Ox< z=_tIp4#{nTtds0LDkz^3$n%`v7Xukt0lAuh)802|T-%IFe;2kU?uNL15Z?#LmGAM3 z2u6+xF1;(5y&#yoLcc;VQ7!mlk6__tK@0t3O@g5VjQ0vQXRSs@so+pYGn#e>(Xb&E zUDa#Q*N}tJgGE^4^PwO=9~+Ab5q!21d6`KlFG@#nYYu|d?lB>rV-_}tq5$Z$MXC`SW$Qw@qwfG;pRt} zyEcl+vu&9D^c5_LU52=Xc&toH#uKqiQL=t5HW&FZw5tG-U?F~-%f-U&Je)l(m^?4I z^_AeKZv}l_IcTlVMpbzh(o<7#Zg4LKKTE)sJ1JN|`r`hxS1#ha>(}tx&v#Mfm&N^i zw+r6mb9s3G$ld@(JF77J#tZoMeAmDBKiCvN_fA27yI}lP!3^)^;r-Xe79kj4{m=fz z#l<)i7)L?j1j+_ZA*DYBH$N8KZ58CaeGz`YADx-Kc&_Fuq`wb|J&Bked+-iZyH6l3 zEe)?_k6=sLFb=%+I-cxE#_i9uG2N1ajHAQ=8u6~X8 zug_!SkpXNuHICqiGiba#kBW*4+!sJ%2>yhb7u@^u!TsIi_w|40{0kTVvqx$4@KI;c N_~XtN8$Z5Y{su`KTZ8}r literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/main_hand.vox b/assets/voxygen/voxel/npc/oni_blue/male/main_hand.vox new file mode 100644 index 0000000000000000000000000000000000000000..499aee20f7bbaf4b327f1a656fd86f8a4b0064c8 GIT binary patch literal 2236 zcmai0duY{V7=FL+cR6#L+u6C_&&h4N&F0#?%yihiES;yh>GGU8FJzdxL=*|LF$x_- zR;HQE3e7A;L$E1Rmi^%wWg>`}NEb-NKcYW_i0Hqk=Q~A^p&fYm-plho@B4ngZ(^>y zFEb({T?;!`@Q~9bBE6mc9p%R1kFHq6BShbt{?6St4gQi!#8r~>C`D+(%3HK8rFmL; zhdH|lJLf7p=P0|+QKh4fl#aUM%Q>31s?58}*uK0+Me~k{D_`E#{=6&xoFkR2C13fe zRXXZXF>+13Y~0ahg!#<0YIg#MvG4 z%}Kr(9mZ9Nd~&2BZ!_khrlTFs>>+ll-XUw1%Q;QY@`8sux;nxdmv`%9?+9llgu9!# z`Hq?pn>AkYBJ^$cp{{0s&fusBb8*hWe%kaWj4c_SgwD`T(@ry=<~t!*(&Q8L9n(vt z=vR=JB0t3$j34G4De?_3#rY$&6XYhzBXp9yB(-=JZPPEo9HA4;C79!>=~LU~{;sZ~ zPKY{T!e|D01_<+h`2JLkh*KlVx%k#3&Kb;`sNh_TY4iRVBiAL@E$%{FXbbn!v~`T% zHN(61_1P-JyQ<9e(oRnm_4*}M;1RnSf|A7jq=QTkybL4=4P;U|(riU<(iK8xBG zwJmCE!Tg+*2R7Sa=blS`N>O?m+H1SpXRsKD$aPKM-_WSSeMCZ6(cW1UWghI zauc-U)J>5a?onnYRYgvib4H065oeD8>&>iYp9o`Bj0G7BblZ~3+k6MBmM&T-fBzda zckWya4GrPmA;Gd^S5O`J1HY|bkBNycnBT8=1S_(SVdMJw7}}M^g?*j4aA+eg9NB@^ z3)|ss4IJ{eM z_FcimDZ#aK^xFj|It1gZ1b3bn^wZy+6CB*c_%6Y`nglk?6>Q$H2DzRrR?doHpkoRK zSJq+VxfV?Fc+k|?h}kX8$UeCU)2l;hYe^&fL>;mnZRqVCNyX6F zP=j@IW?<)%$B}CYVPIAq`YY(o=Tm-V8pb1hmIuE6BR&8TSJ4u9)Q`0naQxOQm- zV@KCv;`9rcR9*&ezz<(2jLPy-%$YG2^IGb0u)7IE*=BrytpRs#Ovlj!g0Yi=>t6_d z_*yVHP=~cEYO%Pj2I*K7$M&zr{!arqcQcARNEi2?IClo$6fWVHA8%uEy%hJ~wM6h9 z@8$mehgP>@WXobqyq?F;CkOtu|8u!kY+WuGUN1QQqTn)Txqts@n;^L9NzF}e%2$c8X(d{&E#{ZV9II`p6ZhG(?a^j^o#Ex^l1PGR_yF}!{LOT1sW zh1omyVZq+x$bNVky`#6#-rkOT0!Rsg-(lSn-2MEo`R?+4{a>E{4JiJdJ?J#a2jxus LVY#C4!|UZw!=s`8 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/shoulder_l.vox b/assets/voxygen/voxel/npc/oni_blue/male/shoulder_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..a973859199d4fb7270db2df3b63deea3fd3d3350 GIT binary patch literal 2320 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/torso_lower.vox b/assets/voxygen/voxel/npc/oni_blue/male/torso_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..6c7dbb5b7d827ededeb8a0f235c3e1feaf67e7a9 GIT binary patch literal 3964 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_blue/male/torso_upper.vox b/assets/voxygen/voxel/npc/oni_blue/male/torso_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..a17138751f809d7cd61e33fc755fd4dd5e8404ad GIT binary patch literal 14260 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 P-v4R8-B$dkm!JMOX~!#h literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/foot_l.vox b/assets/voxygen/voxel/npc/oni_red/male/foot_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..4e62f15cbd1332e6604c6218ee18845f95482941 GIT binary patch literal 2060 zcmaizZA_JA7{{;s?K#I6OaoESfbo*NlqM*kGDDFRPtXu01%YGJl6=n5u|~?yY|7Ts zh8Z!;(#Xnbb2D_{(mp6FGdJhVxn8!I^MmVSFKf+j|NhT$YpbR`+i%y)ecjh}-S>Sx z&CjjR85EKFWpxb{axWy(RM%2FIWYKnWFnbB)^BL3`^He=_ZzWciD}{{NVoD-Ts-BQ zkn&ZC{*d^}(=p?zm`$Q%;oCx&Rp`*8GAcOLT)aL;`POHtOiNmVReDjI&X#yf#CuA=+!xmNrqeRnm5}9oLC=ZCcSLina=D zzMIvSXR(|`z9G*hA?bE}e-->&{KpKXp|l~+cbKz8sXWfE4#$lP^Dc-9`-Ui@HFZm! zXh#BHQstPYD*(Pr~ZhRJ80##r|`TVMRjFI3Rf8v|!f_?rqFOR%b5q z6U8VWsm83XH01VWqWE|==3kkE85;%pdzgDrP<2rtYgxZ13>laLIh%&B>YLCyDGx`} z)}n7(1U({nk9F*XSo-+mQ zm4faSf_Ld}T#$**+FbNB7GiKqDJFzMn3j@)#TDg?)m&|I93&IPm3x3T~u?eox7Q-RjHDl}AA;Kj@o zY|os6S94SG{gn@K^}--Vj%>u($(M0{^nDDUK8%x}?8hUMC!&1r<5*l;goB;4k=QU3 zKU^)w`1KMTc}p;ITyX6R!H-`HdO8cy+E9R+s(k!McA6xjb~S#h4l7dde?NE zJ9PgIcV}{Tva;}6!2p&n>Br_bU&qY$8Myvg0nW8#pg$+)KlOvSAlHVbYv|ev>^gJ; zy&sR@z}YWx_|i=*+_4W!_YNWQ!9_F;-$ZqFHSP!?VS+zlZVGOnzu(_&&e#8~^CwLH VXAhFW;)B)#|HIaji66dS{sMv~i<1BV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/foot_r.vox b/assets/voxygen/voxel/npc/oni_red/male/foot_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..98aa5c59dfac6538f39353905a90dad31905197e GIT binary patch literal 2060 zcmaizZA_MB6vxkXUFW)=#}`ZkQP70(lDw2AD4;S!krW9UqNLyh*t8@c9vy3>?3qp3 zTGl8dhFKa}Ic;u+4qVy?Wo72(oH^Ia7IS`Zee7ke`R(8T!L6;Dc5lC(bN<)4&$-TZ zUw7j(8!`t(q;`3A9gW-#i8NF`%n%z;CmKl9 z(@Kc>#D-XhD19H2E(vo#Vd}&YB^;{D5+z1Vhb2x-RB6Q+&PC0bs3S@|W3h&FQ74Wl z@z%t|8O}wWIHJTm6BT8?QYVhS(t0AEI`N?hfr%;c0dqstLd>OAV#IR4 zHtL9qjft^QV{FV4N7Pt;2OAY@V}@Abh!St9JKJF#b>iqN@s7H(jV#cRujHBo}uH}Iqt>r>>Tfei-~pIhvT_%oxaj~B96MFP8?C<6PmiH zRcb_u_4GY8(N-tgW{kF4qr7v<`r0Cvn$@T!&Qc?unmFo?x??U;`aYqlwpgV`R9VYw zoAZg9KH`Y6KBB}pT4I$tu@bO<&|*x$+<>`3L`~2pHemlCVr{_w0p|-M-UhAWnCqy! zfc*pZr|yDQqkLcaK2Z(YtY=*xv{)13_X~9x8{%1ocvd0K!q|m417o7ZDAzT_e}!?v z_go{^hWVYtQRBkQ4@VtQVl>Qr#zcwrVdjUUYgesU&VO(GDJv^OJRZmGKEdiEmyn%u z7k@+|7#*!e;`x0{P*?K=Hb<5s-c^H<{nZ%h+l-NeJ5f5a15+zfk=B-p%sqw3A6yKn z@{sKlAx9sETuQ~%TEUDC!R!Nq$A$#q?SiBpK{DgilY)h{ldz^^Dw_5t}Bl%LHPxNtYiP~ zFrd*nNEhxG3foO(wvdR%bjG~)`v(JH~`YXxI3 z2$~r0Y7`vULcL3{WbPESlnJ_43f`q&zc3x`Raxk+&%?mhB1{N{FfAzwOG-;n^VA9y zW~ZXOC<8T5=Aovl91XRV$j#2chnQaqoYgdOQq@N!l%zQ6n-uACph@Zn7uJ@F#Wjl7ScQ-^Tklh^Uk zNs6Y{WOt#1B^rFm|mFhu;zm9}`^tLh$3)g6{S_G}q;#vOEXB-WkG? z-u3AHGzF)xr(p~ktf*?7@5Aa8Ek#&YU@TCAS~TmiA%G8?Rz!%M4umEEi{+($JTg z`JeuYyhN>y4Oh{*4cL9~IC?%F#+zrp#G#8fuxRIgEZaATnh!3ZVdw@bDk^YW00|TP n33o$q>)gHl-QxZFzjgkE^ zp;S+ORt_$!q!gdf)&lcP>YDhvPqgq#-_}As*5N(#@Qlk^ykma!W3=^AUwNO@gO!*+ z>+)9kXlKkjiSdkgTBObzAuzTx>eGKHvBta+9PM4;8O4nFM9C`7N6cK2dFD<0oR8Qs z5A$4=zFm z8T~8!(G;bf;~DdAN{RJak*U?3&*`H??4w;^K6zp6n+0DO`(+_i%(xOyBSyv?jJ6hB z-N*wo->@WN<{HL6S}>kR4&?Mf{nVPGo>!SLsoV!uN!+|PI+#1PkoEnvnR%$c#HAq-f<+_T@TONo!?TqyBT;^R#kN`1%PIWvAc z=22=W@$rFNa>ShYDDiRZYeF7t^h10+`R>RC7vf6Znrk@DnGzpm?w+%y-20})?-u%G z-IkR-V>!n-#N0*hMow{6;^Ud4lB?=-o=3k~StCBoQHhUdUmW}39Q#9TmG~&}QR3st zIY%5EF>&OXBcGhcnsVO7GxCCS;faS5A4i-L^2vyS^2|6}o?KMw`KB-r>UfPkVyuWS zF<0iG5hun{V(-aarGIVS5npn~IPXr$9nQ7q{5nr;*gG#)b%{+SoUO!hp9I#zc$`ho zc~$mUsq34<_|3a`&pf==m3+}S!{nJKSCo8G&Z{T?waGco8~Nv4!hOs&@{oP!JEG*O z5<89jW&U3CLM7+B#W#%aRO%_LGmURre6K=$Ygk8;*VN@j;__o+;-p&8xqiMo2%n$zUI@k8Yo`4QZkoTAG-hEdqm^Ej>wiRTQEC2iw}+n9ysw9x?2B< zzgH?)TpUOI{q4G7$JpoaSY;b#4~${q;3yW3Jcfm1Phnu;Nh}{~Lwl_gozJdE@5#F$ zBL>-5f}Hv!Ur*m1gAy> zzj#P+{i}jW?w{TzIQ%%z4+ys2whYxRf&<$HFY$cm<_=7cti{aE9?U`j5kpax_ z9me9fzl1-Zp8k*epV&2keGdxeDuR<=7hGm8|6TvaRZB3|z2e{XZ`!m8-y1lI4R@Tv zwu8^3eXbo>ek^!zkKjyC4|;ohvA630zVN^W$lMHW-hVSL9s8(<&vuYIt5@Tj-A8fv zwj+4_JKw^p>Po!x^KM+4Y{!w#&i{!Y^`fuc6K`YxUf`KyuVU^e7xChSU*Y99ui?(8 z4&v_TPh#wcmoahf8it03@PPo5QScA=Yl8P*|0uur$*=!+&k=0S*~hK%^5gE}`Hk+H Jj&E!){{o#C*>V5? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/hand_r.vox b/assets/voxygen/voxel/npc/oni_red/male/hand_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..29a7c107cead450e1906d9150b550c5e07e1829e GIT binary patch literal 2736 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/shoulder_l.vox b/assets/voxygen/voxel/npc/oni_red/male/shoulder_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..e7659fcb269a3557e8a5a5c9bfc490e38701e7b5 GIT binary patch literal 2320 zcmai0ZD^Kd6h8NT?vLj+HOn>KG9Avt_Mwrv_|EVhVW@k?jjoV-ubK0j2B)caT6Ba`w@$O5v=L5~ zIhC9#IaBt>`&Nsda8}u$vOoGLg|=v8<_&#@KEe_{iJ6N&jY&vDaH%I;aK+#q`=(AA z9PQ4r2FDs4dv~nCv2XebB`jfR3zqM!BfpNbqn*-F21C1{-S9r8Psok%Ec8WR41qin zF8DNf&;F@X21ngdcb>UDbJM0d=bpJeb9>I$lXJ$fv|HKOW_ zk-bIoN}K1rJ*A^`F;l{8WW2~djhtO1cbo^IM2Jbz$0Q4ZGEn-2yd>m=XTmw!l>4j+ zxky+Gb(^G-y!i3n3Vc^!Uj^na@Eygg}WZ)Ds^4kLMsj31dRl8;C( zB72XKbq9iVM3?uFFt5*ID9~0&m3yg-?fA`G)@)dd@{aPZ(*pS<_+E34$$@1|%h<~K zTJDnN&MD`w+&L@!wuRrFPw312k>5#vKjG{P+|hh~oPptcSK!;6Pu7w!cF@d6$GY-3 z{QE@Qe)Ekt$e(}L7A{7$onS+8K_py0lPg2zAM+m+>***zO`dTUWX z+=NRvm0)&%IcoRM!nLQbz_c}jIolX}NYHpfAa^i-PXZa73^`JQ58FGi`hrUADY*mv z7qy{B1TPbx6Wy0sB2ni}w6 z`6N72J{gbAo{BF{zlJl%hcLW*4MyL77{^9l!J&gM;q5n{#)T6np#JL1vAC`VJG*C~ zchz)!d8QU)AJ4_^=LEz11!vzEeD#r_r@I=fS5%?7aSnd`?hy9$---TrN^tm-GK^u? zc>kk^58%_2$MM70pP{)%&f9?_+uHA%k?PF2T`Vf6Q=eId^B~OgvFFh^0#gaQ`z;V*0vi`1su_9PKK@Kt;vB^5^&RSgShD zV$*uy@m+7B?~P$Rd*lPWbn+ao+qeTux9>&Ut0&NL=p34wn((avk`VX>dQR}ou|Mkj ehWqt@e*SAQ{+<1o%$@(`%kAg$jR!ved-)xCh_2HB literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/shoulder_r.vox b/assets/voxygen/voxel/npc/oni_red/male/shoulder_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..ffa062a08b26a3fef9623896a6189e7c775fab5e GIT binary patch literal 2320 zcmai!Z)~1b8OHDD{CzsMIb7-1f?Kn$(ssh68|~N{EOZr0?aU}l*8K?>z}3C)3t7yB zroliH<1p1Zmrj&9r!HWY%x!5G!4IQRT$U^Z7ow1`5Izt-YK$>{Ai4a#BQa6Ke3M`9 z`@ZgT&U2k}p6A{6<%e2l%xvVYp)Caas5BcL8XH_#FZfYf11x}twvP>63MBlx3p3Jc z1YcM+6jqDGR9MA3YKYD%iI~BAG|w21MxN_+U`()Df?!1@TESXHB@{(95>rvsyrXv1 zkX%vAMDL4Q@My#YncN4)g`yS%;ava(F)HT@ZR%0 z&$-YeW?~WO1?E8@kHNDiwCJlovKF|++~ljy0v-Y$LbWJD%@x!IH8DaWFC4lr=wdB_d3v56(L*4Qo*r1B2QEbJJ>o6mEpjihYLOneNRJpG zl3PMgtOuSvfMv8CYc8YJ^O8OkMXEaRMdBP2K2yb9sunI)oJ-s%Ix(Upa`OqVspi0w z2Z-d!C(e-`IPf9imG#IISfm$u7WhbyI+9yLPv}IS(8(>MfdikZOKNas-D}2c=1em_ zGd?r-jRpatL-(2YE#oiq?PUCA?ioFxgAa^_NNy1gd_*HgqNR){^u)TvK(vgOc^1)U z>XN$5oMGKV$-S1`Ysp!aRr4ihghuqf#6yV(^ne~pzOj<`ti%I4(IPrH@DL(eLQ9NI zB_2xdk2+K5vRe2C&cA{0w}Cx1uqHLpLkJD5hZY++Yc!%I>ckkh|DL<=s{fhQe;YPz z(B$N#-allz_vq_tYy7AFzH67}=SNik{q2fr%kby*$gWMA+&`?j14EiS^oZt;JgMHf zC$yx$NzD(ps`Z&Q>O6LbY%t39E|4AnwCwdJEg3N_tD0^)X!_h~Q@Pi)Xv(ydy6L28 z{m6B?uewBI&o0&T=RTv&lcueQOxVUArXRzf-~%}P zleLu4h;|XX>?>j?QJV{%bE_|zHY60 zR@6ficCXKJZQPcOdYj*cqjSlo`$55ZP^!MuVmPLA^WwE}wYN`Hw z;b*$|>WpSz+^PAOzphv2exlQ-UeL?Gd|sbgxIjI(epVa1J9TjUCQWW%uD36C>B<{x z^y2qTvnNcKertN?52lIn4(-^|u7SSQ`s)X$b#(ecP5-J(;H)4|A-Vpo@&;GpPSy=VLI8-q0Y`u?P=SuFWq}qHZ`Fe_T8X! zM?Sv8XIgl7R;*MNcZ6Cd)eS4&* zkG!O*U(D)zXMd*`Uc0Q@pFE&DpF5`EpPtv~>C5Wx@7Mb#Sqb`w{AJU7uYBz9J>IYX b*XI+w`kj4JtT#WYSJ$uAySnhT=i9#k=98`0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/torso_lower.vox b/assets/voxygen/voxel/npc/oni_red/male/torso_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..60d5714f0ddb4c13a73c4db097b3ae5d4c939de0 GIT binary patch literal 3964 zcmai$Ys{QQ702h9+nJeX%f*&L3(}?+=|w?WXbUu0C>2WGno_9H0uck+_kDL4QcYzy z4F)MHgF&F63ZYW zixc9IK_mw6IKigCWy04EzT!_zeX*H)^B@CBX+~V`J2;5g zXN6$)_%hu^hDic#w~k=nu*kYhG$pnfP4I;9^f0!BlQ@m z@djQU@Rfgf3Cw$HG?FuiY^VuKZMNJOWA0n{4a5^|>PKoclAB0ABRP-o6RE*C;S^bG zqn-&0^=U0!0S|YUm>T%8z|+g2j=4kXJ-{;`kO4nD(!ouHKTG}tbzy6N)_x~OPrthg zxbqWKonEE419raJdiuTk4;=6yRGl+J%@;Lm;l|f`wYk?Itq3-PExiaVz1V<2jGmtJ zaOeVlGqw{x1>Vu=ucofK+;h}`qmQhUekUgK%Rb;NXV;o+u&;FlEcNed{Ubw_%ms29 z$hD;oExpiyK(0M-5xW z)IO?`y=_J0odi-Pz828(b|%nz-r-RDw!WpT0W0-wW*vSKJ#3ki`d;&H3n=tJ1_BZ_ zk$8Vw-u?^{DCE86yHJ2ocP-zI0y5v01V_2@RNuAI&Pd`t;oT8wr?RxuDYa9=IPslG zsZ3?wOGz0?kK{Zhe2%DbJn&e6C~cd1pNPgT(2; z{>YuNzHit@?4l$jkjOii_$G8XkGBIm;f@Sa;tfk3#)W%3*wlNl!MDu*#2tZsl7yHd ze&Hi=h0q zq+xFIC^ZTD)OF~dwT>^tP5`lVjR&EOOf17zO1F_REGds{%H5oE*8!i?Fy%ColDeUA zX5xHMQX1Nnx~*jPBgYm;;VmG0Cq&LzH249T~1wDZX581?#Lw6IKz_{Arg9%+RzH6I2EWnw>S{hk6 zD3jdFC^tg>i48;`AT@Cq3h@>8BSVSZ2&7rn(1^ALi3I2>r#Ggj3P2?bTOCv*zUm0KA#2=4OBc2d7oXV3-4K}%a2^5W>ZizQ`9{6AvG`0)zi90&+HpL=Ru<% zJ!&+~7@f7>=xoMwpE7z;x7BO=r|HgnXX^vceORyBXLQ>kqn~@)=9c0(rEAydmQP-( zD;Lkz^{W=>mQO6xEt}Ts_U=Yqx_E(pY~?b&c=ZLk=G^(ZdBqaFdCmE{=c-F|$BMZ+ zb+;OeD%?A8l(`^L4pYx8>Dx?!z;e*P@IbN(s%|j5^!Kl>(37vP)JMK)^w{G@U;DYy zKm5w*Xlj}6+PYLXu3w^mdH1M3df)~<@RK?E%p3Fcq%N4mf8v>^^fxcPpnv}3Te@+% z`M~)1-LO^<@7|~^7w^?iUGuD({UbeN&l&pM zL+^2T&wOg<+;jCSOAqPgmmSpGzy4J{>((>%^`9=)=XTE1g9{h_&;8Y|o^{jq*L2Tr z)!{===>8ua({DWc3w`*dH}&GX?$^ujJEB{@|DtX``lfE!utDE3swM&bySg`xzWw}r g{=H3o{l9g(aMEY*C+p(-t=0JtTALjF!TZfW0l*W82><{9 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/oni_red/male/torso_upper.vox b/assets/voxygen/voxel/npc/oni_red/male/torso_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..10954a8030bd674ad2ca067b56f959a9cf307b13 GIT binary patch literal 14260 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 literal 1616 zcmW-gdr(wm7{(9hes-7Ln5G$KXq-Z03I!cdz;(GTAorW=a#wB&#bs5*77->!EUE zJtUSYp(P}a)hUEKN17*1Xn4{B%gcm9s0CIhiYzaQtfx#Uq*a7kWOZ7R^$;c2QzB$S zAyg7&gu6tU%sM2Q)ygtugo;qhEU%GiPldHh3hR&+R;wtK5o(1pg)$ZElvI?dC{s~J zs8uwBntE#Lsi{Xu8rCjr$ZJ?nLCX$EI<{ZrIh`PIyhsQl=P42rAxNB4lsK&Jg%fb4V)AE~_}2g}j=)n!K94n)cRkPFX`*Lzz1_ zAh}cKPS4SD{k*_?@*?jPM5+?+5C~r8dj*+#3TZ*`Pn9sJ8Gi4I1Pdff!c&I*!~Bh859309Qsj3C?H2u75hZp4~cV z|64Gib+^Zb`{f7Fx*`F8Ph7(v$49Us$bdg>gBXs_#e>>*e4Aszo#aaVd+$CzuC2w$ z%0l$4(BrCC4CYRpz@^d>G{uHv$kvHRwN`wX5CdzJ30EVGIJruXTa%+`kBh+8s1Qtr z>0veo;qdB}c+#~S!_mtz(p--xb){%d(&NFh*KljC8N=(6&=?m4$NE@&y;hH^xBxuO zTZ*!Xw{awGIVOvua3-eoE0at2F_%tsV8R7o;vBQG4 z90MMoXu`45M2x*h_Z==lS8XL6#XJCT09Sx(HWJ=i^|tFI;`Qu=j%s?5j7Ux-<;E2ZB*iun0{x zD^QfZ1P`wz;py!pJfBU+?Q88gZ8u{2#wzq3OUK3Wa8#7}q0^Rz-7S6?a&1RpVF(ga ze34t^kL2`~*w;~xc2^=gPH)EWm1EdYmW3U?;b7q^xn)(lc*;j$byH}ey$wj(GxY{#ja_rUC*g(l7j_l!c? z^Ed)atMQg88w;8TkWsM}nRPA5I(rw3^S43Y_8I*1EMSWEpnhZq=>yYX@C@o#b?Ot66xe{wq)fOPMiIU^2${a&SRa~(s$vU@ z-dT%E|6Gg(v|=E>78(A*_`%SEg5WT`cs5U`^f|ux@&Y=#dr(uq1Dorrv9WX`OxY%+ zrp94SR49TCA)6>%!9UaBs;2@ftn_;zDVK$o)9UTpCZ*O>bc)Wa9=07d1 Brt1Iz diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/head.vox b/assets/voxygen/voxel/npc/raptor_snow/male/head.vox index 8c8b1625834aeb6fd525bb386dad3a292631c890..8a6dbc4ae5c09caefb810fdbdc38a5c5b04228d7 100644 GIT binary patch literal 1596 zcmeH_F>4e-7>4J4zi(!C)h4x#rGFrWc2RS*qkyb2&El!A3QVZaQ)lt5=d1EM9dFrtIW4Ij{;PMG9MWOowATCDRGVr6w{yCBm58Q&s7kTH*#^O#j0GF4;N)$r+qdt1RTu0a1P|G8Rc zP`*@G=AV7Nxn16GJ}i@?qw@LAi}GpnZh3Qm=koi%ot~ESv$L{Zugh||ycj=xeozkf g4$JG8Z!i1)($qu?X~x7pY3_JXP-S6CtsZG z+7dq1%S-4GB%wo;gsEPV&@L#2PEjelQhrwnS4EZVatdnM)w0VeXk^z2Q{88Vg((eA z!Qha*l+rOlCAEqwN%DG~YH5n7k*0})a*8O*c*#gIN*R@mS~*SBC?#={(pwZ&(?m%| zDWj56t0eIal~z=$B~h*R7ByDwi*yVR_Th?+WJ^>SLlHX6#t;rHUC6V>UGzlHr`O@M^Q=4% zXQGZr^WI^2m6@KkiB!gh(7G;$uUF|Pjt$~@#$56v-{)Y`dcTs4|J>On)A>Z=*6jh*vGk;KFVm*ZT9g^+UQ#qiM;qUQVX>-ic=&9gaU z3!$kvjIHZ$B?$4-lmb9H7ew%FKX38ufs54wH0)$GSeTY!UW z&B6S0c?tK=Z{vbHh)3sQcs^jnUbvL+ueI~yPBnK=82Rg}83r}{-Zzu$r!v`B;*Y0o zCwm-)RNKvzwKWd<=-$Hy^ zIL531lC6tzdm7kLUye^j1Zz)L5R#(D*Pcx0cfI8ADkh*Pfu-`d&TOz!)xIA^bs@Kg zhWN!XI?BYv1Y=`kD7svfWNc((S_vQLmgBdllE`#3^VXzLIxt9RK@n}EKVfS+h~>Z$ zPTqNdqIQhQu}0oX$(Dz95S&-SEK?fOot>lYAdd=Y5hSC zxdx~yxI}*9r_|eeFomacw*DKMi_T&*?n6I!G4Z}@u>_TqHYb;j!4;$?rsApS!!SF9 zRDT2O!jtS2=UU16U=>Ay>GTKH(HU1pN?<5I=xfLdjo{Ub3He%I^5s_-a5uM5YTwSL z@)9=WZNQXfV#SJBRz`&rst-dKBMHUVK$qIj*iCH*B7l; I`+8Z$f2?+fcmMzZ diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/tail_back.vox b/assets/voxygen/voxel/npc/raptor_snow/male/tail_back.vox index 4f11a48ba1d9f99489714b84f2be0dfebc7e55d8..9175402181a8d989e2deed97c691fcb0edf2fbd5 100644 GIT binary patch literal 2012 zcmeH`OKKEh6ou>lRsXB1y6e&Jmt+$T97YKeK?MVn1SjGGG6@R7H8>Pg=?K-`s9SIa z5gfUJ3<6FZW&`C{nPslCG<=+U&OQBiQ;(O=_qRRCqI#$!P?}$`V3~`;tBC@V?D^>&wcbuJr@_fDWpM zvNB+YQtOed&4_#?8$FiVj5&WSD?K5f&_VT-{*)Z_Og3gle@17{40g^r3;GNC3$j>o z-xT*vRTiQY4<=RICsjF!I%FNiJs|^!54+@`yX0NP^(V)B2s3t>;(9Btw^~`$;XQen zv&-4#>~d9G)Zu-b7vu$bp*9wE_^2c+$x1TRwZ4b%;ZfaZ?yI$Jb)Yt8sA@A(Ycp0W zGr>>sGga$3e$IDLyc-_2vw0G-weqCHNe=aYZ>+9?0>gwudcl_$8IXXCQ-oAN%t9$pH{`2=V_zNE} By-EN8 literal 2012 zcmW-geNa_(9>&k_+;h)4_j0)}ya;;1DKusm1szmSM8ONni}*r#L0)_VgF?6}(OyKD zA_EbVm(d7qXYm3mqE2a0A-!ofl&w3}ADJbZ>^5n&ZaKT_t~NbAw{zz+&+mD@&-u-{ z=Qk&R&H6{WB}rPfENeAI`bd+cysV<-7Qf*YNTw5otS>Ce>M?M^>szAQq~oex8dM$B zAQH@V2sM;Cg@j2b)NnGD>uFRcHG&#Rm4rhTL>3O&KqY1(D_j#ZF&McfCSp*zCMF_j z^hDK!%|x{jp$msXR9)C~Y5)-?W+q`%O+wMB0raw&nOWG3W}&D=BRajAxf~#DN`O#| zL=6z(8dWD|=CVcD3>Kj%#Ap%WD$$5eZz5*Sr9kcx$X+0O#2CmP(TGlOB4*Al>aMU7N6~HsRB#I=zXxnFRQIcJ_#3XV1=_ zT?}Yco!-RUOk@W;L~*dgCs7@uU!&^uCgx`UJc#ok&Vx7);+(3}oBVk&^I+z|doYWpGveT!eSW)^P6XFPi{L(y>_@U6$;>SC++?1ctY}2B&=b`n^PFTwCrTi*K$&O4 zjOg?RD|2GBGPlZn|IF!4#9-shCi8vEeBW}PM%C#}%nf$V?3~#-v&%k>s?(eNxr4cb zxkDb%s5-q8#4Lze5HqUo_rdhR^i*RA*CBGh=GRbpK%FA{)G)bU4VU}Wsr1w6owCmu zK_9_;sK!XHi5AIOgu$mq8U`NEa4q}&W99b=Ue|kvackR)XkUZLJsW~Solw1pU7ngq8i0f$#C!q12HU?hD$Mq3;4b3+AM zbCPg-ZYZv zF}$+?U$^hXPa7lf&$?_}uFJ#gC5gySiNoK!Jm@G&#!n|(aI|72Ea z67b!j&1lS`?#A1_UhFNOhYM}d zz*#3g>xst1u~>ZEGY|iNZ#k~NwF~FF;&JzaP4R zOFI5FHWQc6Y{G%s7z`hK9($jy!oEf~YAcqa@5Mw^ZJvpix&%yv2t|`ic90LDt8g~b!|iE z@Je)@*@2PEN3peXJ$Cn{pyfh2vJ02MwK*2Ko@MA7K8WW!8sKbNiVdfmkdU8@sK#6j zemRQDJvE4}UWpYv)0qc7XgU5eq}aUP6BSP&uP_g5)@0)G yv?WMPUWlalXxzPf7ZVc`7#kbI(9jTCTU+7vdf|4vk)EE8sHiA791j0~m3{-p1HVxK diff --git a/assets/voxygen/voxel/npc/raptor_snow/male/tail_front.vox b/assets/voxygen/voxel/npc/raptor_snow/male/tail_front.vox index a5d0865362a30fbc171479e6bff2768cbc79ccb3..e8b0c598f73760a3ff1310cc56f498f3aece5342 100644 GIT binary patch literal 1872 zcmeH`J#G|15QV3!tE>8FZ4N-fB?yp646=}s00~RTwnz{MaAJXEaRx#p?+?=MtZZL_ zl*EA}F5ti+p)W9e7y64_?yE_NllhN>b z1milv-u}VPB(mW18{E1x_wL+tcj^VL_y!@IyM$AZsD?97;oK}N-NHJ9d04xLKBJaH z@0lE|gq0W8s8#YBR=JWl@=#wn-m}RP27AecjGQSUUmcHOCd80lV z`wD%9zCvGNW??2;@Rhuc^-8@`uhc7Z(1NdH-pCvC8}|cc^dYW1MD98+O;}4@X0RC7 z9$ClOo02O%sHHgdM2;ql+yUP3XaRL{Fpmp&a+=1p7h9d){w>C@;em%cxUYBM^6~cY{psuB=kf9I>)EH_>&x9c@7te?i{bCp i)o^ojGhAO^-`0*k9u9~5N5hxT-|qC@*BSrgx!pgt9G-mu literal 1872 zcmW-geN0t#9LCSEb4TsA9Of?OF7{Iu zMGMu5iv$x@)j|y-RLw6{t;eD|^b?4tu||ZZ^+;lATDLHKh^cEKLf5(^v4~CY zVjfIXgFS{8ViI9!-I7?urgxDEtZOEBnCvk%LzsL9lRYNq&^ye7Sl5LXVhGJJi4fc+ z*h6f3hqzc*CHo}%B>SW`QAo~`?30{D?=W|(X_N+Ve$77%hLQd zy~EtadQhOxW}nSIn|(HC+MG$X=^f^-K;2>8VclWf;T)<>?*wuea~J2k_KL4FbUmKpUZ@!Ve-;XO zUFjUa^-X)wJUbnKeQ*)KA0EPnn0Wlr-jBhweB7vR#iw~*e7&?B|6aR}*Q%>AGiA zgU20%{fp<~w|zS>m^=$ZjkWl#rUZ={akw$#eq37V!Qko))ThS4za|AAuZ%-QYBcT? zOh;+rqd2f)7S0tW;q|rgxYzDQMcNz;Y|X*f&0F#7ng{T6RXQ$IW#P?&SY#(e;oCMZ zTJqxY>yZW=ELnoHPx8L~#n@L}4u4S$zTdYFwOP|JTE7AvYa?*IcN^;Sqw!DYQsDFp zxVbw5H~mlGL{&1{i=uF?eg=|eO~Oy7no#ALiZ^^QXs<}a_`Z1GaWw; zY{jLaW;|aUhqszNc&F2coy9Y8wkaGqF$te_gk$VbB+hrt#NY2N!j)6oaJnrTH{MFY zoe?)`%NFCS^S!wH#V%Yv>c*cRdVq5lei@#E3&+>u#mWc_9C{u*pDn|#S`R8q7NC1i zEXvkRK||GS6y{FD&5Iehb2$U|#xrsGVk?e!xiR+nJRCZhi8CV!C@YP`-u4yP(G-aj z1KY5E{TwV=7J>Z2C@jsKi(PG-&^oXLZO6A@@WMfCC|!l^-3e$oTa5JF`Eaj`M5cEk z+6MOGxt1DCs#}27$LbK19gncuO!R#@gwh=qh%8@%#r#jF?De9d_hl%%%JA9fD1Nwl z6}NBS#`yR+l>Sy!7Hr1m+)6xCRDtD)2%nd;zsX zSCQE_1_gKFx-SGFk0gR$1(br_;Sj2sNq z4I^P{400k8ux9=WR1|qp_}EI6N9E&ebTj(Ws*xQPi*Mqaur781{<(XbU+F!(`~GRP zb#$Vtc00DzRAOVvMr7q?Vfpe@Jf1WkvGH>d7afjUw{Br~o3h#(=Nt|&+hXlbLRWeOWx8^Qj4Ao(}K z{sXrA8msMXw^~n9N{}?M$b;WI_naB-eQ(}-y*Rw{J%sRV@8CHkeAW) zzyvwSpa^o%0Mod3MGgw6iX2Q8vke)jpfU6T#ofcek$moqm0}f8{f-+jqI>eI_3tZl|9Px3lAY=!f$&y*a;kuD2h||JxbY j8?!5!_2ll`?fd!hrF);wzg~LpMd$f<_H*ayzxstg_8NZ= delta 1225 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 HzmMQwI3tf2 diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/tail_back.vox b/assets/voxygen/voxel/npc/raptor_wood/male/tail_back.vox index b5d956d516a3377fba9b86cedf447ac66ab09bf4..4a3f8945cd0723c5062b394d617c8be14457f442 100644 GIT binary patch literal 2188 zcmds%J8#oq7=`_Q_II@tUvh5}s90H0kTP^YDiSJ1KqQb*sRSbnj0_B2SsB@L5%4$o z2dwSFl$|wGcw9DAp)MV0q(|pF=RI*^zmi|fj&?ssQS@a0@F@~~a8dO9@c2Pi8$J!V z0SO$vJU)C_ANZ6KMJA8Fm?HXSO0finm!CT@1R3;gpScjW=3QdD-=A$ zG3QvO9+d>2$W(&?3m#H((K1UkGcaJmK}xQSOcT&xjBG6GAV6ffrezM=%Eo{Nhxd>% z7bnvg5+@rC1}r%6)vQ9u}a%RAS!+QwKQ+m>nje@vA7j%OzSa5g`fq4qj zq}!Br3`tYYG?=EGTGW9j50KK6oNi7RlALZXrzV%VMIGLg2T18jLARg_NkO-uTgb|y z4)4hWq;;>P2T4hCPDKZGcuyYcd5d|Ad5d|A|Ajiduk$u} zo4hRxi@Mr(@Ev-n?#jY|?aEyDWNCWjJz43#%uS!)>dQh8$Om*#y+eP89Q06DW=MZX zXT%xoi0h2$kLi!ef?~gl{VMjW*dabs><|wQpESrCWMIMJ<0g4iu@~~DVlU+2$>W?^ z&Ma5#K`kum@SZ#_m=(+lW`&wt)ZsmOTrw+}mCQ=DvZ%xRItP(RSNuDXV2(BvWo+yTJ6%yT3Ib3ji^d) zqT?p2L(<#;StByZU6P%J8Sc`(nSzVEblp`@2uhKw1hwdE1ZkEy>E^t^MHaE#8uWiO zTSU3e3naO#(b?ICST{Qz+$n6NDIk`=&t2k=qr>DHg88$(pTU@P?w8xSyw<{vmBsu! zb%zhj%eg!|p3VRx7d@6U-Pgz2{5)!+!Wd|8oM4D4UA#Kz;cT?|J0GhA26W!m&C$+XB>MPBZ=7(~mF_5CHdDN5zke#-W z2bbb`axI=`caykw$Dj)l zOj<&HOCfeg94*H;F?it+xdm(3ek6>V(L7?)LNI0NNU|)W#nH-+<_bKjLRt556^4{x zJS&sv{b87bT_xy><5(e{bzZB5nx1_&oa&2kFA8N==^EsUD6tpf)NjW_@55_GKjs?s zc-2-Do^EFG+7!yh#tAGeru)`USlbVfxBoCz6W`(2GlW~T3HOu@;?AS^<(D!)IgL4W zy`&UvA+@4`H79T4leraR^Jn;GSa8a=?WS`07D>I6`1Vbqc|k^=ACB@B9Znf1(D+-} zZoh(M>qmIai9)NdW>vyIUY}!TPt`d#My%&L^7Iv?EzIFPzbaDWQ*l&{5N7i+km?=A`jA9Qax7%OwVGnzbVl_}^v0Bv z;v2~A;0Ce+LwWx6ckx-D@x_;?Y3b;sta3Y>DoWXyzmep$WD*jhc{?J6z~CT^dM~D@ lrgupst(eVbA|oU5^z=lj)oO7P>py{Whv@(S diff --git a/assets/voxygen/voxel/npc/raptor_wood/male/tail_front.vox b/assets/voxygen/voxel/npc/raptor_wood/male/tail_front.vox index da09c29c79221edc187ee5cbb642369363c0f818..c11dd8447fa9fc3e62f8e3d1e1ab1c7f9b2f0582 100644 GIT binary patch literal 2040 zcmds$J!@1^5QguWnRDiR+)eBi47N71!WJn61ql%~pdc}zrHz)BX>Bd-_k$!qz(3$W zu-$EJOlM)6YJF}>36ds-x$x}Vcjle*F_(R{x4-qJ>$+zTcb^lwpWbyZcMl%-gW%bO z;XT6s>x12|$_vjg@YEfzEp+OIwvZl&JKvm8RA|#cmLxzH`(4faRf{mfi=rcJ}Fo=*$W)2w&xXmwB9b!S(A>YV1)^E%h%AkYJJSg8&r%8Ahon|mqzK1Sc(W>)`R#WCp-tZYc#DZ=h zQJE|CsLWMQJ<>-kP|5e82~SdHhzC63Ar`36sH-b;!vo26<&K9~&=ne3rk-_`z_ZRW zu|OU2g*8if4zCQLwtWe)0^YF>#gnk>)YGo|9-|#?z~yQ8y{Z!9^b~FFYUc(o`2`Q-+213 G^}0W&Ow9=Z delta 1360 zcmWmD4NR3)7{GCO-}}L*H`ZJ=niVM)$kko&f>*x0pnNJ2UJyY+P$)jGinxmiyP|@C z%EvBUQCp}80_GIEn22d0jfvUJwagSvi>1>@TcxS%-|=j}J@0eQbKdi8XXmNrspiCM z&Q^^=mNZI1B})g@f{WlPayP+U@Q@|Fr!Ym9lAINiUQ$RJSx^W{L8XumsRb9oRpf4h zyWk;sih3udq<2Hmrjfk#-o8T_iWwkt^5R_`0Rvxn= z#?5vIcZzn=I5(cB7cTSHkpWigL;2g@OMhG@_bQsXvfRv##U=cA`wpL0RB+{$MB3*X zxa7T%$(|n07vxhL6G5Nd#)AqAAIC4GCohLfkw%WrH*jrakmlG(HbjLm8g9U3)U$Wd zJS&e|x6vOR#6VpYk1GqPOEhqA&Qz`~HPOE!k(yXN9V=t_W~qVFSRGHYW>XmX9{ZAm z7|D&|cy=hy?Pf~jLU624=SJgt9<6+n-^=3}D^KO~tYFe2wEWUyrfGR7k9ul3P>{gT zM`GVzYd)jFs?=GG)+E!G?Z=(2P1I!Sc+tKX&TQxYPCxEZ?qY6@+tWS1`pn)2S_=OK!$2?q5#i$@N5@-%a8A zS!SGat=p*@xJ63$INF}uxWB4FGb0k0Hv(|VI*xmgna#~tF>gGK@3a`a zbTuqV+QU23Ozf<_z`E7@*xx)%L(w@36F;HJ(obqwCMTP|rLE*77UOP0XD=Y$X9fAX zN-}2Uu{N-p^u%-=)q_M>{q>~#MX)j~nbJHnx$iHfM4QQwu95Dz3evQ}{2baqPH;Fc zp8Y8v>vO*R>I^My?UYw-W?f|&YYNtonvqIUQY;@tg%KPYf1vET6GSYK%oUoEwHu4Y-1oTfz2Y6tuUC3fTP<8n_Hx*WJ_6^jWifm z1=+$@D}ia8h=vfej2+T8F-CEjxR8)#5G=9HIGTKf+OW_(BJ7zK4qsKZ%_hu# zD}`YP<#9K;!Az{fCLELblw4j-_D-R&U-cdps%C`L57$V2`zgPCw+MfH&(P|XOs&ge zaYHWDKgx&*Nrlf8zET)DBuu{|T$~c-&I@0DKFcTbAMnxpXPNsr$%)S84EluVvsn!6 zd5FPha_Ddgp<3Z&o7%O^gx_POx7o(%zV(D#os4$XaPg(5`DW5jae;xV_4zbBVPjvL zlR&)?*(Ho06lP8c|*u@+BN30vzbINE=ZKxY%Z z`+Y=T3=p3hVByj!V%1i{J961j;Up(xB~5j8l-RA5uUW-lUx?@nc}%})<%>B7*RK@w zx|$iE6z1O(Ui&RYuiwVWNGY>tYWV3|3&CUQ48N1f`Kv~*laJ3W98x-?dxeRRP-B-R z^>=Ssb(?;(DHBIg9*+DpD(z{sx>nFy^56P{wH3GNFD)(QW#>3+OD3osI)X7` z;tt`o&4%4>r>h{umdzKCNH1BzERthtSC7zVQg_E}=J}!#Hde;idu)K5j%==+Eh6bN z60=zT_5Zc`TAtRcy=9(Y7aSg&BJy^e;}W2$Feqe}=N5*M*V}_P<3%K2GZVHHA of#11%LAdem-}~KA_v`=S>IvR@XG^gbTq>sd?-aY$_|En67y809V*mgE literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/foot_br.vox b/assets/voxygen/voxel/npc/snowleopard/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..31aef01019d535270f648ff67b699fb149eaaf4d GIT binary patch literal 1412 zcmah|X-r&I6h8Of_r}KBN@X7qaDbK>Ok2t_L!fmi%mxLd1T52*&`Kkd2`QOr2qhB? z9R+EF#gRZURzyRHX-by>i7|>z#fF45mEe-prs)qgYBVl!34cD%pnpuI-sHJ8U(L@98uqbaG3boQka$jSV!W7*dF!kfKmZ;Z#z%NC}rv9J5sn zO);+tm(+w?X~HRV&NC!Qrx4OAg>)++T|!FkAz2sa75j?wN^+g-lBBwXP=!(`mlDb? zr0SAV@jMljib0xN2+byi=2U`x$-dOMm*$pA<5_x82%UMIXR$AJuGhIoC})GB}ko1f^yO?sx4i$c+0FtG|AY)t`Sv z^j!4JqNZvmjvOvQsIv;Q10Kvqj$n4Q1J>E&h_NRixg`S`J-INC7lRx+$p0{C;xW)d z0%EEOiS2~cA;OcF2^;)`O<_VT#|ak*1=Sl-*&YLLZ!AvFJ&uYHp>CLPbeeGT7T4Ap zk>)cYD`Y{@j2$U~IG6^FuuP^S@5VMH9wKD*a__ZZl= z1yeiYv9db_sC)v$M3`fI#`uac+(npvm2ho}uy}>=<>w3dWa$HZ^!_C*emsY>EgRAA zB@8_mkG`XiqW{?>G}{QB6@+t*thK-hpTmUix*Uug+l5er6(eosxc1UB_-4|F+{^@& z?n+11Q#m-+XobI$5I#&8KS7v3ODIY+!ehz8p`z_*+W#~fEeY@yq+rmMjhW^haFphu z)>(|xy(i#rsX_N~FNR+9V`i!k%h%5%Qf5NvU2^H=XJRn;P8_b>O2!?e z!)qsW@t#Aigo#cnVs0@z6uI=BR&w1xlz{YAoLjd-$_fu z^V!4LQxZYznLZ>nC*tO%Y|MF+5y{B-*Y}UkkKT*+YN}sCpba=VI)(7tGkE#xb&P$u zjKYoq>^U`#syF6Qe|Z^pyB+rkpbZTC4z*0U`|jWR?(+Zje>^|JwRg6jjgsqe(fotB KwZ;#wr@sL9tV+@V literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/foot_fr.vox b/assets/voxygen/voxel/npc/snowleopard/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..454f843c391780d723f6933e3f2a9fb14e8d4a29 GIT binary patch literal 1436 zcmaizZA_b06vxlK_j&5#++^}zu+#!uTg)~FLJ4e^0bL7&$p{GDM%ZK#LdX_aNJknB ztHRiVtCheo+Yk*QW*K`4kQk%5Ok7CFG6}vUb6NI5jT((F@g@E8_dMtqGnqH}<-GjQ zIrrWt&#l{2ZyhG0%3@y?8#<{I)%g5nj~M|k4(XA9sBiH5>V=Uds%3;Ak7N`>lDtAv zvt$&bNzN(q2*o)@F`6PTX=6km4L8mGCGf0-6zP95ad$I$K7P^a>$el2L+v$v&eb`$}@Z>{N!;WTzz6 zDTLx$#kGoSRX|GirRtPQc_e8(OJiMQoqfqZqol@j7}B|4XI*Dq4+yDqzs_gYSu?R_ zV$H-F`;vWWV$I~;yK84Lf1{PPdkp-&u{bsRBuayX>LJ3RDZ=sF+*@sirPYRvpc8r1 zZlrX?!8T}yb0Q7dH#Z@1KOv)+XAcvK<_OUr?jZW@r}*W&W#EtRF|cU^Cb!08d3y>_ z{uG9YFw1<#e8mg}2ve^Uu1^vct`ffdd>)@Het?hOzl?>CXK|)!E&Bb0@Qd;2JM=jE zUr0iui_ld{I9tbO%{8O7%!cl2JBAN$L$EdHg80KPZz>3r()_&8@^a@ z;_j_1oZ~&GCkTu05#IPMitbiB&W3U@f2jmN-Kjyx=@<;Y6Njs}lW`Ym@Vf~CzGt|Z zFy2KdanP#wZ{NM~f%{v`ad2j)!kM-ng^u;8b*)2f_J7~MqqN|G`{(53;I;fQY{?!+ z;lK$bhmvvgEyD6X!bQ6s4u=CR>0Q|Ey#@+(BfcXZvm<=gGD44;{~e13FJ%s4M_~lb zr~8o9n21}KGcoH=M#O6U*Y`K}H|mU84K<7CXaSCoOd|C5G+w=S1EU`<;hCcY*l}VE z6&L1Eb7cu`w;T5fpfwDBhgu@sd-w12-Q)l3|8#zYEAMPIYly39M*d;i%HW6h(_g#G BOxpke literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/head.vox b/assets/voxygen/voxel/npc/snowleopard/male/head.vox new file mode 100644 index 0000000000000000000000000000000000000000..f11ee32bc1e46b93db70986f0a2e99c0e49c420f GIT binary patch literal 2708 zcmah~YmAlE72Rj=ea`vNYO%Zr3UmNvhDJrWGnasNC~)r`5EKbiMkQ!9g%F}}k&I+Q zMOr8tlp+CJN-1p!X^i*?kTgw8jirW!7)$6QvBvnL@3iS7eS|-&>)@}(VsEl?-g~dT z_uAiGb=SR<4~odr`Tff{$dlKItmq$D^s%zwZy3QXsfc@55A@%iIN|U4AY#L`7Ker3 zRnZ1LqFoxVPLd%@zK1?6CVfMHamck}Yfp56xJXvmLOHI$QX~m9NyV6wC6l;n1 zG>2MnYb1^_=9Wfl2G@p~)GPC*t2HZ&ZFg@*jg3rHLF*o^5sNS0i543vX~QfwJxEfx+**p%)ePnX2bW?Pxi-x+nH;nV7v28gHrjiRy z?PTdl%Ef1DTTIOytep#gB|qlK8EYV)Nc*lOM()L2tDOAk-#s?mm3OQWRO&ItX7WTR zbH{wD(uXyKoYV`)lC#j8f;YVKW)-z&95re)UD>Cf7#qsm8+{w=;*28&j^Ux?HN^UD3edKmQ_ z1M5UY`pcS_htyEkx1yiG`c}+^lUJrzT+?BpeyYMfq#mUnjC+yLqK`=3SUPN;jtI4< z%vWIUlsa-}zKiBqJH5gyQ8PSe4+JgRrQXRsdTvC^gU-G*j*<41^FX}^OATRvW@=1W zZ(-lX5NetFF>2n4NLX;{sN})9cCN{th(us71onim*Mxl&cwd+oD?JcW!$YDij!GVk z!>A|EPOXQ!XV$X#V@yu_DN#?%duDHD_DrVUGix1qR|D%wco|ENIdfk0!~V+bmqdN# zqEW_OX>7%$tzfYg+zGCuanD*7IalXAwcNB7%b6R$L(Vg+DP>8#Rm6s z;7DJAzJy~UM=yREi+Sdo)C#;~wB9!l)NQ4Q$`9vgA`34a8G(S6E{Dc3NdcBUJ zp&`7#U(h;o4pT<{8<+q78(jYDpHY4<^`FMFCAZ?i2j*gE>k^#a(~r~pAH?ZHkD>SU zqZr;d8spYZ#^miY&~6u^X>8uOkCfIsYBi9In{^pn@6H^ZwI=M zPr}SMZ^D@S1ygs>_CdkCvx3WidIy((|19uVyN!YJ%|=;PS^ z`LS427i?W9cwrT}&hEhaMV;8Td^!$3avO$L_Tu2W1$g}{pTlpDug8ojqcQKcNm%lk z>3C#SFE%U|?0i6Qbc^8ZbAq0U9q8|#iu-$R#_D_S#;WeoSU-C__BN;C)S6qcXx>cR z)tG~)cWl9iwac*W(E;rH@&=qbu?rX9ID-B2J27R`E9|a`vfmepN_7sF07lf6?e8? zgY4XfQJY8M%pr1JB-q|T?M$4AFHSpvJLc}k!_Vx(*fnGD*2~jyW?&rlPoDf=`7i#< zy<%(iiVN7h4tV0w3GDpNDLnhy8~ECfE~56>9^CQNQ7rl9S*&>FBKrFJ@V)?25%?$U lqTs#neZcQM>g)fVvkR~E+118!c(t>#|50aG41e@{`48aLzB2#- literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/jaw.vox b/assets/voxygen/voxel/npc/snowleopard/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..9d4bb41d1d3b18e37557e4177705d1b769b4d1bb GIT binary patch literal 1288 zcmaizdrXyO7{H(Je1~wEhH*a-&;gWlXbM7{!$3p1=mEiyL2^`vrVGZH!W>g}M#EDO zI+BQiv5crO)|_}5u(ej?lpGs##^|z{bN*4STCIDHe||lm{nZS6w%?xH`#zU%-&?bD zchaDUlyC7>sFL68B2_+r@gtU_5~4h$*p%J1e&03KmSiY~Azo9lS(s`owh+ZGUb`tC z)21=?4b?Www&FG;)X;OHdBgGz@n~_6-NG-7={1i0HT zY(G0oa>QRO{rWXaKmUj&=Y3ODlx47gUmk(BGNyWbO!e<)YUl`_sl$X7L=jt`L{djO zu8~}%I0R{W7#V#GnT;Z>T!?NK;`@XrFA6J~gjGQyT>YqXLU#E|N}I#*cZPFv`f-W^ zLgj#PU_v;4Q}0$fNN9AD5^$3Z z_wh8R>sQk47y6!$r0c+=bUznEomXfp63*1_MFZ4(Mzvh4oNJJ#N}e}W?dcWOND#MR`vR#WX=MRn$X@84RKd*A+9 zSy{a58DT@_D0w|6hz-Va{cT}!k8mz64VTMBLvkBCwqHhq?L@XlGCicT77HB?{dW=) zcp-Iw&3XMCJk>=^T{Jf?q%!S~r9Ua@U*F&AZ=JJh)mF{Z+5pFg#tFVN$t#zy^7=;$ zJawdp%_l}Edvk`WiwhJK6mVBSRw(>|xggwm@1ObZ=>PS9d3}QS-q~{6N-meP;t$H* JEBxU5@;9G-K9~Ri literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/leg_br.vox b/assets/voxygen/voxel/npc/snowleopard/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..a79e0b96dc77d97d7931caaad11291b66868b23f GIT binary patch literal 1636 zcmah|YiyK76uon2zAX{KB5k29wzW{`E(R#2yW147Ji5E3P#z5xmPY^~(li9pl4fZ( z7^qSUL27LZ8nL1wjUhbKHZew#U?n7kV1thY3E_ttH5woBk^VWJ#a{-&NlxaRd+(f? zJKucu%hwe2h{&=9)wP^tg-@ieI$rf?N^m%WAsI!iSsSk|P!f)I!Wapuk*Fn%Ne*`QED};HxaSa)`Zkj6ULD{a%Y;=Gf^WNQ_*HI z8Z?9&jaj1!QEJtYDz!3isjZf&Rqm}(ahfoMI_8~5jHmSDIV9qXNKHXdsU-V{AuLd8YJIC{FM64p5O>*(oXs?>y7 zYU}7pZJBq}j@nT>mk`e-jK}pJbK!L_#&4g-dd`G6#$8%uRdnHkdyj|jBpePSnM~qtmmqe02$M7Z!pLvmVC0vdkQ%3} z2T)rx3!67oAlXubfsSenbZy4K(On1)>_mEH7P2=LpkVKG_kC$KmvSlKPuaz?P{2G_34 zL0&^4rX&Lh_E#deDFcOva}YS0kCH3XFk!u5%07Dc2qebZ7 zI1^QKORzjrj)VJlqj6I$T6f0L`C=pb`wn3E@^N%6C`58yF6NboFme1i)J7sG@fRXE zV=CJBwxIKcNjURXA-=pC!0qeP@do$oKPkBOzToxWN6^|(jAL!37&^TOKi{fD)1h=6 zem4W>Z)D>(@)55TB-m%?R>6rD!6Lsru>T!Pr{33pUQPxAMUxQ7ABzhASga0@!RnI# z?!Req`F;JDmX_j`P%mbdoIpj#eq^_0}m;3zo(%K-yZ7*_4UF zqdaSsU~dlJPF^0KFY3npiY{zDbN~}KPQdlEMHq}{qpP6cU-zHdKUJ6VT3dGwP1}Jz zNBhwBPCs70a2co!c9hkqr7d3BQMBTYzR905vt^hKMz#p)~f;;d1bG|!#U;mfq YFL>`id(fOpJ}8%pKP-38_~Gm2Zwu623IG5A literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/leg_fr.vox b/assets/voxygen/voxel/npc/snowleopard/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..4421a581db087bcfbefeb89d5291b96a8da8c49b GIT binary patch literal 1664 zcmaizeN2^Q7{>4C<2~n;X_$a~1#|@E9GZ&I0R|cb91o(HGD(lh)O5+n={SxZ*_ll# z2^~trz*JlA{Q z&-=WMtJi1ui^!_V+IkN1yi25^HeB;iT=21kQ}O^=zad;(t{Lz-N*G48l8{jnRa#0k zF<8Cy5|W9+!uAJ-}mYw&OnNA2M| zJwZjpdLqhtqHC8wRXKIBc!x?#N)U_1aJN?wIx&uUiGN}8w{I}{%TI_ur)x)1U$+=r zHwO}@e7boH7 z(sW?OW9SpX82OxhP5PpOGp`CR4GXTG7ku@_I6l4hAwK@#EUtbshGSc1pffD!c`gZu zwmpo_XH(ErB511?9B*W;MQLcR@uGcA9{P7IL2O+y`gd00(#y}_+o5LU&r3%6k}T9c znTH*X#b{X}=-4b6+$*?vOc2OSL#;mtn*s~5VeQjs^e3aaC>`C)b1~Ai2sPyeSRE|I z;RAcovZWsFyTj;tsRbj$hcI#Z1bQpIh;2;A($Zq2%$be)U=Rg9F9HkaqjP^7dS1-H znYX<7@~R)Vujk_pzH?+qaP57;>%UK;y*UrZI|?y=x(YwvYC!9e1a!Zfi1Rm6aT{3( zR|ul)vuC^DWSgMMC)4)7YvufV`p-;Dgg-X}{;XLj^UcD#l9^an@ZbHnR+rw>e_>%E zUMU{LqJons>pF|GJCa(HFgCziYXtk#cy}^0 z@j`ANmX-Bl`;kLPX_|}cXLB(YPDO8a_P@?Q{{Hy7xYve;YiQjG>>C(H$2%i9df_r& z`)C4B?CHX?gM+Ah^CB9~O`xKp0(S)v55XTW6M{SM{Zro^-mm}5^B0`@&!!vW$?0*2pAS5?DBHv1yARrTRR_Q3A}!ue-iwYt8l#8|7y5D{oE?wKGAj7PZK^GuuY z>?#xWw1pE@;>C?}qnc344Yl};b)!Dv=zx1aRLXDG$`3tlW4zGOe%z%`D=+Sl(-9SQ zliY6HFyB=Y^Lh4#JlceYafbOu1)+!=7v(mKcAH)DsAP;2`qZJ7Lmrp9{J0^%p$21X zQJW#3F+sDTenU-;)kvRMJ9AvxT=wWP#^>s&pjoqjNBP{7n|YeC+U6!}1kC|8DB4_d zX{&|M+UApsT3u>(ZI331E5^9&O>=d$iaBBQVwgXsEBD6Mev?@%bb}LigrRJhIht$Q>sjiotMMA z(>$A~F*;_nCWnq1!Z);Wrb={FTOaR96NdUV;W0m89pA33rMPNBF;5f9*5myJ)DTcZ zKn;d>8_=$8UD}PU%e}FC<{Dd53;C&u@TfDO-AQUs!$V0o8d(;30;>&#uAiR^|vOimP{ zw679bO{vH`oQcAdIVid^730?mChsM8w_x@~!N?CcG4k!F_~pABz#reEed<{B&P>CN zIa$Es$IvB$0pc^_E23+c;LIz6OTB`t=LKJWK8R0-KEOxspT*UW2XJJ=C>*F4bUd4e z{hJ=ffoCRQeN51@Kya*%T1zs~5aywEc>%h&%tB&i8M?R5$E6pa#y2M$Fl|ygX3xq& z^%DiyQdfq?#e%kVf}Wj%i$?^d*_o&+oQ$=l)3JKRQ>ZIUM?*;#4ll|_-})H{XBT1F z!g3tkyAzEYYS6m99vv?IIyP$ z9nVk1nK$$B#nnRGx;723vu58(!O(kx*M1v8YeNB!wH0IV^nCnuvldNnqSWzm24-?X6o zuKtUQi}7+<4`vjdKt=mLWVB`A%3FdPYXqkX3J{4zuys-kmc%bW+FFs;l!k$$)EWx* zWb*A~XXCm2F3hdy#O6c$F=739TsxbOf%*(|=H~uu{W9OK?r6u{eLbjt<05L$4WqKM5_bfUfWYrC!-CuI{;lse-`D^7`3olhvwN-9 Qc`u)}-_MsMzJI>_1@~=hXaE2J literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/tail.vox b/assets/voxygen/voxel/npc/snowleopard/male/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..4e15d2195cdfcf555bf3907dbe5e52cdb656377a GIT binary patch literal 2220 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/snowleopard/male/torso_front.vox b/assets/voxygen/voxel/npc/snowleopard/male/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..f767c03f2f57a71e2818609bbe3a3c0fa645a3a8 GIT binary patch literal 5432 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 literal 1592 zcmXZav5sRk7>42B_DQk@8qJ6n0gB)X+^vMrqCsej1ql?iECrn_3M7hYC@H2%rbF^A z1Xq@Vm_}mC0IBm4s zbc&LWF=>s%xY$$dEgNj}F_nBu#>qHskJGi8AUOr9E3+F}FN6O{&?N?vC@_X0MvVLa&I~pot zSwz3T{8THS<$wL6m5*hA|GE70>u37%Zhe=Jt<9!pK{IIbCLiUhyvnP*3aZ@S67rCT zJmeAMSd4E+LxtSL?BC31<}=T7KC51rcR8P#&&+2i&wOS+GoP8y%*Qs!`OJJ~J~N;3 z(`G(1pPA3hXXZ10t_0)TP$B2j`E&x^VO`;_2o1<}I-ky`^I5NoPv_J5bUvNWdVPF4 zpU$WA>3qhOc0Qd?=hOLgK7Q7ED-!MaR>=7@K8;V~)A%$#>*L_l_%ssDflcxC5!uu% zXare8>>ZCQ2F?S-2GJdQ{7K>KjQJW zj3+d11r@&TC-?-P;1hg;&-(iD2|mFm_ynKzmE;qAf=}=XKI?1BC-?-P;1gsV4Y`70 zb6EH+yyAj09`S$!?y<)m;u%+5aK*Sk igW(1)KW|<4xBvGZzF(fY-SqaoJU`y{_)VRKan_ryH7&sLqTW@KmrAQd=zx9D3B;}0g5!cr*JtA+ZywT;A99M9NXvbs&3#JwK4nSC7%wSr^kd(gyga15+^1!E$T>gf zl%7)Lr<}4eJ*Tu77ro@g{^lvAJKaVn+5WP5PWkRR^pWqLe)#6A*As}d&R6%@q)HLB z>d#l78}(iP&+kV4nD+1A>wkZI;k&+>-}K|q>Y!>uwNv#~KTcQlMPKwqQS{zx=tCd+ z(Bo)iY)z^Z(fdR9(Rn&g?|PoeYx<_=={%ihkULN3={%jM^EgcOJe{ZWbe{3kI#1{6 zJe{ZWjGwEKu~jLe=V?3*pt)Fc;^rh6qW7ioG@iyYmx`zHG@i!Oc;@o)G@i!OcpA@G z(#F$x8c*YCJbu<(6^(IhMf5zCr}9*u%2Rpf?ck|A6{5Oeb@F+O98^uHb}CQhnYWFn z@>HJ6Q+dX%tUSMc{NDP@hq1o;V42_N?VWdNtV~^h{qmFbqjzJDg{SZop2Aaj=3~H9 zcnVM9DLnJh;3+(Xr+^d}osSDoabPj2C<>3a=&et&KE?VJ>!Th|%eX^hRiuc``UFq# z1W)h;&wTuNf+u)_CwS%~$rC)m6Fk8)A5)&-37+5y7?&2k6NZDs#GCRe7dean1M5)^ zvX`A~C2n$+i=5>oM>)t|cCwYY$yF|LmXjRiAbZ)#cD>zh>-BnFFPF=DKA+dq>9ih? V$MtYHto!|b-R*YkcDpq<;(y6$ZS?>E diff --git a/assets/voxygen/voxel/npc/squirrel/male/foot_fr.vox b/assets/voxygen/voxel/npc/squirrel/male/foot_fr.vox index 8bfc3ad83e8190dbf491b6ac1510a7b868c5f0a6..b7d47088098ed52bb14bca74fc3d85003bf2e328 100644 GIT binary patch literal 1164 zcmWIZk5HJ#z`)?^=;;Tf7%Es87=k^cTzNnoAYg`KRv;Y_8Rh8#5(EN4AZBD_n8pOe zj7&hxz}Uyg$k@un$k@xszyxG70og#BiK&f|fw`A~k-3$Tk-3)%h#8rf+ZY&GfNEHJ zgWR1Q8Gv>|!G9n&-#A5 zq)+;!Pl}}XX`v5&=tGaAk-iqml0@$h)mP=IJhke12CwLgo~QCuo=&bjm8bGlp337g z(eqTE%2RpzPpdqYr}9*u%F}KBR@G@D!fHQ+WKWF)A9{z9!N0WS-2Ec`{Gt8LxvU^JIwZf!WQ+ zD{@hGLUxdOGS7HzJeeo+WS-2^UuEX`{NPsmcrV)7o%z@wuXntqJ~Fv|dit>4zZqkj zcoI+INj!;XOaq?8lXwzO;u%weC-Een1d=>-Oc$Qy!sMi+NIX8GH$KVuB;%8ekGjv6 z{)YOfND`~@37+5yp5O_dG5vUgCwPJ|`q&S<6b6;(xluQ4X?~oorHk(abuh(t0TD9eJ*%ph1b0hu%W1wf3 diff --git a/assets/voxygen/voxel/npc/squirrel/male/head.vox b/assets/voxygen/voxel/npc/squirrel/male/head.vox index f466797075e5ef0cb6f6ca3dbbf5843db30bd415..1948ec16b4bcb67cb8d3782d24c5aba8eb9bce7c 100644 GIT binary patch literal 1504 zcmeH_y-EX75QS&v%#9Wz1beaZB?1--A}Lf*kQn<^cD{m9o9uRi;FI_aHa>xGkka=0 zUBN1arA-#TJ#%Ky&fTATbw1g9HnY>i@fl+8#q4rCJ>F`D18W1=fXVfA{OS}OGoYLY z2;8YbO~d9~?HmFG3FiLj?&O@D&l7J!FX(|F@g{nr2ZC%q@t~%~nIFuLMS!Ri%wypY z9-Ytxi+J#e#|Uz0;!X5KPUO(UTLx=HjiiTW^M(6L^g`XlTIz+Gi*?imDoC(U=MX^; zlG>y%7d?>ZHJ@S)GEIy6uiuYcWpCW>Zq}O}tD|kLT>G7|*8km4 P%jNRVe={5oTgJWtabHe4 literal 1504 zcmXApJ+4zZ7>2(eAMPzixrt~;Gbj=(__`}01PVg8fRSbt#7{xzY6>KZY=9z7k`Bod zE65TEOK`&iB6g6H);u;jd1CuLw$F2HE3f`}{ou2Rym)f=l0xbv^55OtXMgktADVIx zuHf~Xw|8HZ3ZD!vGBY5WnaRwR61115+)D>Ho7_QJtIkL3P?YXtHLS4r=%I z-l6R_U0dp7rfcu>IP+-{t8rQf4}qD+09FgLg`r{Dl4N?rF3LY_dVC;0dI z(L*baO$J{gJ312dD4En-lnL#C1O$@q+I!zbgD@yYmPeEL>qeE$FIy1lzE?RMs) zKDKx4QeTY8K74_k^$FG|Sf5~hi2G^jJJeSN0=QTo!AI~Bd;}lCXB(e5bZ*Eh7%lN3maI&3YM?{xxg7taD**vU=1r+ z!UE(1XE?zTwy=RUtY8U?cDY>I`Fw7t)2SVg$F|*W+h((A>-D;=R;#vLF56;8CuH4In64nDx)`*HuG6kNZ-QYI^C5IR}v ztfjM+c1N{QH(h;b*raK*r7b?RtXs3y)K@cKHJl8e93*|#^lsn~!xtXBe6hwe602$~ z2CmV~V%7*Uf{Y*opUi_p3}5sWerO9al8huHy8|E8)p9m)2+Ku0XZ4&690D)FSY)@z z#nHe^@@$d?P94J+9=zyn$$G_l)lG|cF4n5Wth$3Z9t<1;Bp3^Nz#)cDdJ>OnF<0~t zZN*-;RjrZP7Pm%TBd?Ly77fOO8Z@bs8mt=ozgx{AAb0EYm%Ceux8FQ&+l9*>oX)`Z g|KGO#{dx9G{JPm~KR(L#`P$F+oU$(Z?$4FH0)ePeEC2ui literal 1568 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/chest_front.vox b/assets/voxygen/voxel/npc/yale/male/chest_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..7cc6901eeef19e4232f2c8e21208ec05e3ced60f GIT binary patch literal 3552 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 F?0@8RH(&q& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/foot_l.vox b/assets/voxygen/voxel/npc/yale/male/foot_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..ac36204d3e37d283eeef9374b4ad68a88c0a9f75 GIT binary patch literal 1876 zcmW-gdrTBp7{%|*y|V*oV@=b)G^X{H76lC|=*r6l<*gzvh#)8^v^=(onni?ER1i^l zM2e_Q@lju>v0AVqt%}kRv9`fKv{un-O{%fhM`^XX%jwxp^2<5r?l<>--^@<(oCWVS z3Lz3^#LT9Ma8rn+n1wS3djca0bX{|6Qgi7<5}`DgrZl%sB)uZSV7YNo{E)upTGKh%z;fx-B@u?1~0X?R#t zhxV-vxRp?dfxGwcMM(+Tr!7JA6f3R_n~6V<9KreA98^Yyq4(@hc-;E{pT*9EGa?CB z!fiM@-HIDs9jJ>A$I6JQ=nl2QZVSZDS<~>mVFTJCC!@Wp49`n*Q5A2+!-?4 z7R93?IuQFaqVU6fD~h56@G^Y@^1?sBuDO%Zl@);#nZbC|=s;1-RJ5*0!L6DVc$P67 zPl{vFQ=Eja(}R#4=8xa%9jILxjAutGu_reUogeeQojGVIDa8KlK>XgY7-dQ0(OoeY zO_{#9cW@0V(gNUWP5{ns#G@^~c(nf`oGgw+W41r;R!l_11J4d=Rg%Z^q4|HvIFw9q97H(~i;TIi87at9;RV zU_CZ{T7b=EcC5+`#lEdUC|EoimBmw#l{y}euEyi#&3L@IpNN}R>u`Lp4Sm<9NLZ=8z_)qXhHx&}*@Ohw#mU!-OEBO!4bHrMB)t~Czz$Csn6XAhRWMn=$L`}*6mnVTZ&=jp;&aR9D&Kf7+IEx!#}qpZ$lCM3ga+~?{xHb z2PzNlfY@As-tKNZdGrE*J$;3q3%w96bx4kwkBr!K;vFmpsw%o_yXdB*2Ucx;OVN&iYj7dtxh^oU#E?9|_(rPR?bsOU{ zSHoKS4gAv`5Lp{h)_w$f+1tV!LI@${RGTWv$3}B8XT*?#Mlv07#dK4 z*>iT_{SkI-DZhl}OLt*+-9=RApF>{!=cskIAt@vcr)qyhQ{gE%ZQBq$VFqGHE<#Q~ zDN@I0+ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/foot_r.vox b/assets/voxygen/voxel/npc/yale/male/foot_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..96d457648890718b4262fcb4007134336acf4128 GIT binary patch literal 1876 zcmW-gdr(zX6vp@KoC8{8PSamHPMJA{f(|O^6$LLSZx!)^2)@9e5N=8~7ZD~=K}6*- z5~4QYBTXr%G^mi$d^C)jHS|YjNv1iIPEU=p^j^Nc+nM>z`o6u_-fNwG_Q{&J=*djqNFxR{VbY)^niwK%dZLL5YKNLg zAqO>)l94DS{Zh+-B3etoFft&G^edu?A;Mz5#d(XKTG;e9=NU~)G%@tTD8Do+pcplyVH6g}h_bkj(J%^|d)f4iCa4|7y1|+{ zAf;wK&3bxJD0-z?Q?sV_8%Ck^fYcl#TI+zJ7lva-vo7-t^XP@eF^hQ?#~4k}+nVR7 z`A%j)5lw_L15z2*Fsxw$hF)mHvot(QjuAtIF+5M^5lwA^-r_zMJ)@LXKuOCll;xL1 z5v?rtYw?^oN3^zhPMkNKH}phV7T4PB!)71$fFha*O|NaPv-zIXhT2dY=2*60N+%$c z!&(k&Ieww3iP8@1aLzbf<8Y0`H4b}qxQ=5gggu2YH-vkK@Sac;WkT2w=PY`nEP5hs zYMW7q@|;7tXDD;2Eov*2{f9D--ln(d?NHt)YA19+5ow07hatQNL)gO*?n`Y`+tfr8 z=`e>#Yp7q^L;VX9-Lr)G|JM-UbFIA-H&$&&!;}>KbM7(*-s;B6s2Kd!+JUa*T->f` zLihF-e3xE|!Rt5hMnwg>r>#Ky6c;Xyn2q0#9>wXRLewV4qVMFF__^;EUQ3w`UwkGm z#kukJbQi9i??F>i9A1u}ir$$nc-&FgJ!cy3wroOI!en&URpD-B5$e)hxIOU+Tv_Nr z*OD~UBt_xi(nNf|(1o(3NZikxfa17kv1k5doX?NPyUSwmu+@vQW=xZB`{zKuo z&^8JGo}P_sAFad5=1AQBAQAV^x=~d!2j5;ej0azD#nrdn`1>;ta6SaT_l&{CW6Q8( zZ5TQaZN!#WOR%-dgSAC7abSBiN|uj7ZTS@B=Zwdl%W1fOH4P7MX5i}OCLG)EM*mmS zacEx#PMwWKNpU!Kw$8_<`fwcYT!$4arXqE27;^I?ke)FOTboy*sWTPL$5x~3;y$b_ zUWD}rVo`gh5Ggq`;9ee%4DT#7ckaZ7#!8H+o{1&zR3j=Y2BWJoaO9hA6mKd+cxfu; z@SBd==|%0~T@YJK(AV3GU+>(*pTGZui=XyEbTlC=ej%2o_qX6{-Gjp2`|-}#*CDpu#3M;=JeswFd%lH9MQia)W)4Qx9YI#f%gC;* z$D$M0FmBl^a5a92h&(Su{$^Ble~*kK{SbJ7p^p#4uxH}HzXBrfT{utA#rmeN;CT_7Vau4=4okjhsQz%Y*9gV&&WX{ONiN-I`R(b+H_YTBN zn1z(lOHdeDiJb8Tcxh5KveUBBS>1!!aZ$()i^b9z^HEmdMgDUOQ5unpGm#BAl3anT zh-mx}Q;+4*GvR-5kALYyeDdi@G`F>*ylOpGSFXkLMb9HMClmALC1FAQ47gk_xFUJ4 n`1JSpqo=0_9UUF0tE+?0=R<00DiRVBFmmKb3?Du`_^#qVfiyj4 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/hand_l.vox b/assets/voxygen/voxel/npc/yale/male/hand_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..9c5924810f333d9f07b5e6207ebf11b0ad14b687 GIT binary patch literal 1488 zcmW+#X-rgC6u$4?Hw&$eAx(clOzT2g5Hz5mBkKUNZw@o8vg**XOcgPM2&t$bAhJY? zs7=v%poki)9jt&=K^h{~Huytp6|L5!5^G&*tJT4;XS~UmbH8)GbKZAz-!&zrf7rpQK1c^&Fq2h0tq*9oMQIr))5(?wo zCOJWzaiK_D*qBy&!vy67?_pe4xKl5LjmvTmcht8Id- zsiszhq)`OdDqIlf8k-PW8+U4iOp)@E#>Pl5y{(f*R`p0iWn+T8aTWQZ*`#HZlVtKI zahfYpzn12@C_-qcE-0#P%<0X^Iiotw;40EmAEUaYRhTS#IOSyOmATd?lU61#GIyc9 zbCwJFQImf`kN-;<+F&l{~|>{5jX~8LkmCTrFl8ai-x8iMXVe36xU{2h#|L zq#}(#8aYF3(5zQXMY4MdGg`M{vH#jQXe$Ob-2whm-g5Wo#s@ z;Raj|)#K<29j=cJqb)iV8^V`iJXi;#-XD8cF2~c3Z5W7Hg29FwJgqK5L%a?T7Jq>2 zsYVQ}jz?XzKa`v({Ftgkd9*KHWG_N-=*QTXyaZzf;W&{Sh}WGKl*cTCeSI2kwyejK z9CtjbjKxHy0pDf^z!c(x-`g!{%?!koBlS2?6o-+|sBfYn3o%}o zjILZy+jby>b}bSD5q+cCY<6VuA4I9VBi&O#sDsauTjC2sihOcN@NUiil9kIwQK z-0N6@@h#riZzN3$~hdINf5z*={R#nEf!)kDAhz`1R5uyt>wi8%Oo{_Xi^|rp4po`ItDKi(M6-u=j4o zjxS2lSYt#*Q7~-H0VvIzkNV1`D9Bid=_~PgaU&kD@1@|zl{OqdsK?aR73e*Xf^(xG zC@uEJ?#^UvYx2fP`zGY)FGF0SC$b8BkdU$*jqN39v&W(R_&N+s9Kf35bZoYTpnk-R z*o+|P^SqH_2}8SmH@37^!>u+LtB=*f-xP?sH7V%(We~;N%HdrWhm~}v^LJZNe`pU_ zV<{%b$MIhtMn|7H67JIXZ@bk}~w(z7K2X zKA86&#Ib94z;@oltY|&nGv(9F!|*Grzyd=C<}~!dRJs9a)lEo0bqij(8=-6c4nEly zu!8NV8N7{@z9}%g!n^O!#_R>5pjQEweFBetv{iw>=dl}T?kwhhS<5QVfL*?#==5;?pKSn z_%zsShY{lCk2KE^Nw-vXPE7Z41`t7r5|U*r1= zLul{nMrF-rtgEiT+M=~EWEhZ?6pdBkLD1=R(D~ATMQdtm3d6(0=5KqBA literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/hand_r.vox b/assets/voxygen/voxel/npc/yale/male/hand_r.vox new file mode 100644 index 0000000000000000000000000000000000000000..46e88bf4827050583cceeb6b0fa28b3b67259fc4 GIT binary patch literal 1488 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/leg_l.vox b/assets/voxygen/voxel/npc/yale/male/leg_l.vox new file mode 100644 index 0000000000000000000000000000000000000000..35f9afa9d018af429ebf6d34218c13eb1f14d193 GIT binary patch literal 2036 zcmXYweN0t#9L9fd=bYQBIoJA2=Xx<$DCkf@uPAsyc~=Q9h~OI-6v9o(b`fEP1|k|S zlMty|h?c z;;y#Du%VZ>xT$Q`Hfwt6h+*ZhCWa^vJyA-AG?7|{6w$c*qZ0iT{?_M-<86+N*JEQxI&tcBuW}r6GJZ) zGopxA%&0;eR}!U}5koHwGs8ZjiD4})W)?H5CWcfTRu1=aT%nn1_7P1Ck%l$V#2EHl^cGcm_&a)dUXQDk zhtHtb9?pwiGc#23WU_CzF#mnJ0=&+5_TbX0t!SE>hQB^Ojhk=wVP#Al{%G$;Z)!fS zRJEXQYa7mGmgAp`m+*R375b*HK<891J{vU$zwFzGV#_%mF$qZn;f

qU;K#P*sL7sy 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/tail_back.vox b/assets/voxygen/voxel/npc/yale/male/tail_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..53ec4f7f726d2ddad5f8fa60523f791e049e3283 GIT binary patch literal 3168 zcmXArX>3*35y$U6>wT+>s(u2YHX*2CG01=cvlwhPFD#C+!R%X1%i;ndvRSN#5VHqt zK^-7fA@7=JLxNJMNn_k5fl#54(u#ZtrNN=lNCl;7meP{Kd;Rx+=#ze)bLY&=nKN_F zy{?`)_xr7$=S`njGK0b^k9%Ha$-K!FkAG4A{SJwcxi#}j`UH>Fo)MmB0^KGZN!z9) zqC-VQIueyBloK3hUggel!{VESxaJ~)JJK{v5M+c5D}rz-pGhdc@Y^# zD1(R!eG)`v=+oaubSNT><#aLn(N4svkE@g)5h)R4jbk#DQ4yM`V9tz3tc%UOtXqdt zPzvrL;MzV37{}*&mO8;Wn(+;vwTsW3t%ErTBBMTI`?T|!kApoYGRLM=jtw<2MDW=X znZw%UFmBSMED@}sC4#lGL^8ICxtth>d$P>Oa`orItHw# zU>&WiC+jR7T*GiJ<9g-pSAsfXXe)^lBBi9@ndexshVJ|a4)%-pNGZ-4N==<5hVWi! z`f2H)kMpCCrmd!(cJsUwn)aH$ns-gRc)Vwl_EK@5w3Cb_d4DADk)hr&j-lSr*HCX5 zQ}XT^qLV>Za9(g;&`)q)&`&39)-s-@-qO!Q-VI_nmOgD*6XWWV3^IZ-1Y--v5R4%#VGK)u%i37ZSQ2 z8||_GhA}M9Ou#wDvzlj#I%R0D{dS@Jb|ZKn=qH8GUij>ZA8KOgXXqy_p)~Y2^f!if zif}ABR`k(sUCwKV$M=Loc(0G9#VPiFX5cD9^W_Y0dtur3`#t&HN@w|BKkLFrh>b3~&BCMUJ zopR6YV}y1Q+C^yRvsNl$Gd^v6o(;u*>6{>|V0b7cH>6*D}`T*v2ohCP@3Cg`N* zH&1uy1iyO;)#1C^xHDjMR#~0#*(<^Grs$)s&I-#oIYCCnZAQm!Rz*!lM@?2Koz+At zeseT2{N`|MI5r$Bes3hdJ2J}e4^ckPJyD+J+2VVV@r^?;H)6O)%NzsVNy)L`*ymU! zxTi$GwS)W05w%(Eh}iqeVa$C^lr>pRlwy90Qc_QznOZc_Q~&=z0sP%O)`{Dz_hJ8t zQhfXVRorjy!ixN{_*d&GoGY1+yPKQQweJu%PE*t{8CqnF~?hyr}rdouoU z@+96}S&JQ03vuoIAMyFM&+xO-$*3=`#D^1#@cNhnT))(f=4lh~T=6Je9$$c}qI?{g zG8$hW+KzLRhNEj&Bfj3c61&O^aChkUaD8?a&MhoQ)3khqi>BiDvkS0cS{@!O7=l$3 zeu$&9hU3z*V!XL{EFQJiVMEC%bgrL+Pxi0JSBv`Ki-uBMX{f}n7K}u7VJ`mKQilWc z#^S4!J8*nu87};oen)C?X!BZx%k%NKLrc(DIS7}VX5sMS0l1ysgr@m<$Q+vvoPP=T z_71?k@JBe)FbS>8b8)L_D2j*o#^2xGgNCYs_+@=QS~ry7&Y>~5{K86 z)>J&WScJwkQ}E{x(s=msZrpgi2>urQm)-qv<@92_ym0_JPrQhoKV5^}jaAsV zay(M|Mqe_y$kFuw{z=T)QO;w6k+y%r}v z{S5W3M^Ss^HN5fhEqHtHAU>@KiRz_{*^Xf=H{z+v8uZ=Of$BBSVb0b)n0xjn1}=Uc z1qXhO+y!;;mc4|=u1`_X(E|?;5&Lcqa-Nz1-U@gN-h_Q}2DUVRgu3V3(7*3g^vY|( zjG3?C2Ysuscia0|x8f*XZN7*-tKY$@@}J{C{W(;Qn~$>x{(!@4&!WEQWsDs%5v5No zL~Y(y)C^jVpA6fEIpuTExvd+81M@LwKp_^5n}rR_>#*$U*;t!99~biWqoZUqs&hx; zFJt#$$;k1@Jp6{Y^bvmh-g&efK8A+IEm*g8Bc5IPEGla%F>~fLJX1Ul1qB5t$m6-< oucxO6-QC?db?Ov$?b?O<`g)X=m0{APN$At34|?_L<@W0R59;~ulmGw# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/yale/male/tail_front.vox b/assets/voxygen/voxel/npc/yale/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..85f1cc3dc030f21785b2729aebeb071db9965670 GIT binary patch literal 1696 zcmW+#X-rgC7`@vYX=-Ck(_awNx{wwH4Jhac0t3jt2{Xu|vM97HQ$@@mLMkeVs4S5p zYEyIuVMLA9f)!|0kcNo04gSztMXNQb#9EiqY886=J#TVyzV+Pi%YDxhzw-TN##n4{ zWE>IOV_+;PGA(SX?$9Ck4c;PNnVJ@vA@nF?dXG|uHo^CN(hIN!Y+j9;FJ?mv@6O9C7gnbc1}4iHHStT8siQ|%ow*T#_XIihZ3CTpg1E9 zE*+B7Y)YdUH3uz4J;E+2E-23R8Kp+E2|J@%Iccdkn)+V4Pj`_v*Y{NhyP|%nBr*BY zKyxUvCB-zdCDkd4>r64qNxD8rNl8$o%?T^QO~H&FOFy7}kTS*dqLQ_a441D?`tcEVM2%;)-h+{ycUJ7xHpZ9Uh30-kQki{5UW`x<~iv!D-;91jlbcZfPPfZ1$mFJ-*#)yXt-ouS# zGrCvBpen)_j@9A#A=!xH2yeW|n2-FR4{7&9Jv@>8&YtqZUdgK zcEjV+C=8b-;p+@PSOUH9TcZ{AY5sV6tQv>&qS5~e^&QAXQ&|xlIllP4DH9b*^DtDE zfR;5LxYxcJRq5WCXpIGWcVKL{2gV#9<8)~#nsdBxw`u`G7P{h(bG0Zn&&5|ZUo;m- z;(pUo3~lwqA?qwy&GYf7YXffd)L~n$5ohbn__o!Cow+{fuXP7byJDop9ivA*ak<3@ z|6T~g?Q@&a+vtslXT$Mgz=Vpz<@n`tJ6>Jig`3As_~&~wFzA9OeX}uqat-#Dc%bX( zHthVY5W6bOD9Kv}`yM|OX3j=+=^|vO&coQ%7`(U{gV*;Har0^eP98B~^x9G!J)DU1 z1A!>a_r$*D1Z=PM#Obch$jVxb=r|9gXL}(waS3)c7NDUk8jUB{qkH%;*5@WoJRWm&mAN>N5Sw4Z@)VY)8+(0|0P()DNLCahb;})VBORP_Zi`s?p=kr`2F}` zh8epnFJb-KgE-VMfZBrd$dCB~^|o##1*GFl{f}rVIs=<&FZ|~RBWmU<)?zmgT>1azxvlA({C9jUOlJ3 z^fkV_*o(%NR+Lt3!TRzNtjk-6q|_wD$46jANC1pRBaGhkUC|jG9YtSXA38fbQBzX` Yo6Uyk=xBt7hQiIw4b!Jj*LP+A18?r<0{{R3 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 911f175dec..72e6b57a67 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -1619,4 +1619,184 @@ central: ("npc.bear.male.tail"), ), ), + (Dreadhorn, Male): ( + head: ( + offset: (-15.0, 0.0, -14.0), + central: ("npc.dreadhorn.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -9.5), + central: ("npc.dreadhorn.male.neck"), + ), + jaw: ( + offset: (-3.0, 0.0, -8.0), + central: ("npc.dreadhorn.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -13.5), + central: ("npc.dreadhorn.male.torso_front"), + ), + torso_back: ( + offset: (-9.0, -7.0, -10.5), + central: ("npc.dreadhorn.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.5, -9.0, -13.0), + central: ("npc.dreadhorn.male.tail"), + ), + ), + (Dreadhorn, Female): ( + head: ( + offset: (-15.0, 0.0, -14.0), + central: ("npc.dreadhorn.male.head"), + ), + neck: ( + offset: (-6.0, -3.5, -9.5), + central: ("npc.dreadhorn.male.neck"), + ), + jaw: ( + offset: (-3.0, 0.0, -8.0), + central: ("npc.dreadhorn.male.jaw"), + ), + torso_front: ( + offset: (-9.0, -14.0, -13.5), + central: ("npc.dreadhorn.male.torso_front"), + ), + torso_back: ( + offset: (-9.0, -7.0, -10.5), + central: ("npc.dreadhorn.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.5, -9.0, -13.0), + central: ("npc.dreadhorn.male.tail"), + ), + ), + (Moose, Male): ( + head: ( + offset: (-14.0, 0.0, -11.0), + central: ("npc.moose.male.head"), + ), + neck: ( + offset: (-6.0, -5.5, -7.0), + central: ("npc.moose.male.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.moose.male.jaw"), + ), + torso_front: ( + offset: (-6.0, -11.0, -8.5), + central: ("npc.moose.male.torso_front"), + ), + torso_back: ( + offset: (-6.0, -14.0, -7.5), + central: ("npc.moose.male.torso_back"), + ), + ears: ( + offset: (-7.0, -1.0, 0.0), + central: ("npc.moose.male.ears"), + ), + tail: ( + offset: (-2.0, -4.0, -6.0), + central: ("npc.moose.male.tail"), + ), + ), + (Moose, Female): ( + head: ( + offset: (-5.0, 0.0, -6.5), + central: ("npc.moose.female.head"), + ), + neck: ( + offset: (-6.0, -5.5, -7.0), + central: ("npc.moose.female.neck"), + ), + jaw: ( + offset: (-2.0, 0.0, -2.0), + central: ("npc.moose.female.jaw"), + ), + torso_front: ( + offset: (-6.0, -11.0, -8.5), + central: ("npc.moose.female.torso_front"), + ), + torso_back: ( + offset: (-6.0, -14.0, -7.5), + central: ("npc.moose.female.torso_back"), + ), + ears: ( + offset: (-7.0, -1.0, 0.0), + central: ("npc.moose.female.ears"), + ), + tail: ( + offset: (-2.0, -4.0, -6.0), + central: ("npc.moose.female.tail"), + ), + ), + (Snowleopard, Male): ( + head: ( + offset: (-4.5, -1.0, -4.0), + central: ("npc.snowleopard.male.head"), + ), + neck: ( + offset: (-4.5, -2.0, -4.5), + central: ("npc.snowleopard.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.snowleopard.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -12.0, -6.0), + central: ("npc.snowleopard.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -5.0), + central: ("npc.snowleopard.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.snowleopard.male.ears"), + ), + tail: ( + offset: (-2.5, -20.0, -9.0), + central: ("npc.snowleopard.male.tail"), + ), + ), + (Snowleopard, Female): ( + head: ( + offset: (-4.5, -1.0, -4.0), + central: ("npc.snowleopard.male.head"), + ), + neck: ( + offset: (-4.5, -2.0, -4.5), + central: ("npc.snowleopard.male.neck"), + ), + jaw: ( + offset: (-2.5, 0.0, -1.0), + central: ("npc.snowleopard.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -12.0, -6.0), + central: ("npc.snowleopard.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -5.0), + central: ("npc.snowleopard.male.torso_back"), + ), + ears: ( + offset: (-4.5, -1.0, 0.0), + central: ("npc.snowleopard.male.ears"), + ), + tail: ( + offset: (-2.5, -20.0, -9.0), + central: ("npc.snowleopard.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 888954e321..31d36969bb 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -1835,4 +1835,208 @@ lateral: ("npc.bear.male.foot_br"), ), ), + (Dreadhorn, Male): ( + leg_fl: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + ), + (Dreadhorn, Female): ( + leg_fl: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_fr: ( + offset: (-3.5, -5.0, -6.0), + lateral: ("npc.dreadhorn.male.leg_fr"), + ), + leg_bl: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + leg_br: ( + offset: (-3.0, -5.0, -4.5), + lateral: ("npc.dreadhorn.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_fr: ( + offset: (-3.0, -5.5, -10.0), + lateral: ("npc.dreadhorn.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -4.5, -8.0), + lateral: ("npc.dreadhorn.male.foot_br"), + ), + ), + (Moose, Male): ( + leg_fl: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.male.leg_br"), + ), + leg_br: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.male.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.male.foot_br"), + ), + foot_br: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.male.foot_br"), + ), + ), + (Moose, Female): ( + leg_fl: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.female.leg_fr"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -9.0), + lateral: ("npc.moose.female.leg_fr"), + ), + leg_bl: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.female.leg_br"), + ), + leg_br: ( + offset: (-2.5, -4.0, -6.5), + lateral: ("npc.moose.female.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.female.foot_fr"), + ), + foot_fr: ( + offset: (-1.5, -3.5, -11.0), + lateral: ("npc.moose.female.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.female.foot_br"), + ), + foot_br: ( + offset: (-1.5, -3.0, -10.0), + lateral: ("npc.moose.female.foot_br"), + ), + ), + (Snowleopard, Male): ( + leg_fl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + ), + (Snowleopard, Female): ( + leg_fl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_fr: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.5), + lateral: ("npc.snowleopard.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_fr: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + foot_br: ( + offset: (-2.5, -3.5, -6.0), + lateral: ("npc.snowleopard.male.foot_br"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_small_central_manifest.ron b/assets/voxygen/voxel/quadruped_small_central_manifest.ron index 823d4eee11..dd13227ab7 100644 --- a/assets/voxygen/voxel/quadruped_small_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_central_manifest.ron @@ -27,7 +27,6 @@ central: ("npc.pig.male.tail"), ), ), - (Fox, Male):( head: ( offset: (-4.5, 0.0, -3.5), @@ -42,7 +41,6 @@ central: ("npc.fox.male.tail"), ), ), - (Fox, Female):( head: ( offset: (-4.5, 0.0, -3.5), @@ -57,7 +55,6 @@ central: ("npc.fox.female.tail"), ), ), - (Sheep, Male):( head: ( offset: (-5.0, 0.0, -5.0), @@ -72,7 +69,6 @@ central: ("npc.sheep.male.tail"), ), ), - (Sheep, Female):( head: ( offset: (-5.0, 0.0, -3.5), @@ -213,7 +209,6 @@ central: ("armor.empty"), ), ), - (Batfox, Female):( head: ( offset: (-7.5, 0.0, -3.0), @@ -228,7 +223,6 @@ central: ("armor.empty"), ), ), - (Raccoon, Male):( head: ( offset: (-5.0, 0.0, -4.0), @@ -243,7 +237,6 @@ central: ("npc.raccoon.male.tail"), ), ), - (Raccoon, Female):( head: ( offset: (-5.0, 0.0, -4.0), @@ -258,7 +251,6 @@ central: ("npc.raccoon.male.tail"), ), ), - (Quokka, Male):( head: ( offset: (-4.5, 0.0, -3.5), @@ -273,7 +265,6 @@ central: ("npc.quokka.male.tail"), ), ), - (Quokka, Female):( head: ( offset: (-4.5, 0.0, -3.5), @@ -288,7 +279,6 @@ central: ("npc.quokka.male.tail"), ), ), - (Dodarock, Male):( head: ( offset: (-4.5, 0.0, -2.5), @@ -303,7 +293,6 @@ central: ("armor.empty"), ), ), - (Dodarock, Female):( head: ( offset: (-4.5, 0.0, -2.5), @@ -317,7 +306,6 @@ offset: (-1.5, -7.5, -2.5), central: ("armor.empty"), ), - ), (Holladon, Male):( head: ( @@ -333,7 +321,6 @@ central: ("armor.empty"), ), ), - (Holladon, Female):( head: ( offset: (-3.5, 0.0, -4.0), @@ -348,7 +335,6 @@ central: ("armor.empty"), ), ), - (Hyena, Male):( head: ( offset: (-4.0, 0.0, -4.0), @@ -363,7 +349,6 @@ central: ("npc.hyena.male.tail"), ), ), - (Hyena, Female):( head: ( offset: (-4.0, 0.0, -4.0), @@ -742,4 +727,32 @@ central: ("npc.dog.female.tail"), ), ), + (Goat, Male):( + head: ( + offset: (-6.0, 0.0, -5.5), + central: ("npc.goat.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.5), + central: ("npc.goat.male.chest"), + ), + tail: ( + offset: (-1.0, -2.0, -1.5), + central: ("npc.goat.male.tail"), + ), + ), + (Goat, Female):( + head: ( + offset: (-6.0, 0.0, -5.5), + central: ("npc.goat.male.head"), + ), + chest: ( + offset: (-4.0, -5.5, -3.5), + central: ("npc.goat.male.chest"), + ), + tail: ( + offset: (-1.0, -2.0, -1.5), + central: ("npc.goat.male.tail"), + ), + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron index 41ec808ea5..f11040990d 100644 --- a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron @@ -35,7 +35,6 @@ lateral: ("npc.pig.male.foot_br"), ), ), - (Fox, Male): ( left_front: ( offset: (-1.0, -2.0, -2.5), @@ -72,7 +71,6 @@ lateral: ("npc.fox.female.foot_br"), ), ), - (Sheep, Male): ( left_front: ( offset: (-1.0, -1.5, -5.0), @@ -91,7 +89,6 @@ lateral: ("npc.sheep.male.foot_br"), ), ), - (Sheep, Female): ( left_front: ( offset: (-1.0, -1.5, -5.0), @@ -110,7 +107,6 @@ lateral: ("npc.sheep.female.foot_br"), ), ), - (Boar, Male): ( left_front: ( offset: (-1.5, -2.5, -4.0), @@ -129,7 +125,6 @@ lateral: ("npc.boar.male.foot_br"), ), ), - (Boar, Female): ( left_front: ( offset: (-1.5, -2.5, -4.0), @@ -166,7 +161,6 @@ lateral: ("npc.jackalope.male.foot_br"), ), ), - (Jackalope, Female): ( left_front: ( offset: (-1.0, -2.0, -4.0), @@ -203,7 +197,6 @@ lateral: ("npc.skunk.male.foot_br"), ), ), - (Skunk, Female): ( left_front: ( offset: (-1.5, -2.0, -4.5), @@ -241,7 +234,6 @@ lateral: ("npc.cat.male.foot_br"), ), ), - (Cat, Female): ( left_front: ( offset: (-1.0, -1.5, -5.0), @@ -279,7 +271,6 @@ lateral: ("npc.batfox.male.foot_br"), ), ), - (Batfox, Female): ( left_front: ( offset: (-2.0, -2.5, -5.0), @@ -297,7 +288,6 @@ offset: (-1.5, -2.0, -5.0), lateral: ("npc.batfox.male.foot_br"), ), - ), (Raccoon, Male): ( left_front: ( @@ -317,7 +307,6 @@ lateral: ("npc.raccoon.male.foot_br"), ), ), - (Raccoon, Female): ( left_front: ( offset: (-1.5, -2.0, -5.5), @@ -354,7 +343,6 @@ lateral: ("npc.quokka.male.foot_br"), ), ), - (Quokka, Female): ( left_front: ( offset: (-1.0, -1.5, -5.5), @@ -391,7 +379,6 @@ lateral: ("npc.dodarock.male.foot_br"), ), ), - (Dodarock, Female): ( left_front: ( offset: (-2.0, -3.0, -6.5), @@ -428,7 +415,6 @@ lateral: ("npc.holladon.male.foot_br"), ), ), - (Holladon, Female): ( left_front: ( offset: (-1.0, -2.5, -6.0), @@ -465,7 +451,6 @@ lateral: ("npc.hyena.male.foot_br"), ), ), - (Hyena, Female): ( left_front: ( offset: (-1.5, -2.0, -5.0), @@ -538,7 +523,6 @@ lateral: ("npc.truffler.male.foot_br"), ), ), - (Truffler, Female): ( left_front: ( offset: (-2.5, -3.0, -6.5), @@ -953,4 +937,40 @@ lateral: ("npc.dog.female.foot_br"), ), ), + (Goat, Male): ( + left_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + ), + (Goat, Female): ( + left_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + right_front: ( + offset: (-1.0, -2.0, -4.0), + lateral: ("npc.goat.male.foot_fr"), + ), + left_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + right_back: ( + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.goat.male.foot_br"), + ), + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/theropod_central_manifest.ron b/assets/voxygen/voxel/theropod_central_manifest.ron index 39f62e4832..341c6d447d 100644 --- a/assets/voxygen/voxel/theropod_central_manifest.ron +++ b/assets/voxygen/voxel/theropod_central_manifest.ron @@ -359,4 +359,124 @@ central: ("npc.sunlizard.male.tail_back"), ), ), + (Yale, Male): ( + head: ( + offset: (-9.0, -11.0, -13.5), + central: ("npc.yale.male.head"), + ), + jaw: ( + offset: (-2.0, 0.0, -8.0), + central: ("npc.yale.male.jaw"), + ), + neck: ( + offset: (-3.0, 0.0, -7.5), + central: ("npc.yale.male.neck"), + ), + chest_front: ( + offset: (-5.0, -4.0, -7.5), + central: ("npc.yale.male.chest_front"), + ), + chest_back: ( + offset: (-6.0, -11.0, -6.5), + central: ("npc.yale.male.chest_back"), + ), + tail_front: ( + offset: (-3.0, -6.0, -4.5), + central: ("npc.yale.male.tail_front"), + ), + tail_back: ( + offset: (-5.0, -16.0, -7.0), + central: ("npc.yale.male.tail_back"), + ), + ), + (Yale, Female): ( + head: ( + offset: (-9.0, -11.0, -13.5), + central: ("npc.yale.male.head"), + ), + jaw: ( + offset: (-2.0, 0.0, -8.0), + central: ("npc.yale.male.jaw"), + ), + neck: ( + offset: (-3.0, 0.0, -7.5), + central: ("npc.yale.male.neck"), + ), + chest_front: ( + offset: (-5.0, -4.0, -7.5), + central: ("npc.yale.male.chest_front"), + ), + chest_back: ( + offset: (-6.0, -11.0, -6.5), + central: ("npc.yale.male.chest_back"), + ), + tail_front: ( + offset: (-3.0, -6.0, -4.5), + central: ("npc.yale.male.tail_front"), + ), + tail_back: ( + offset: (-5.0, -16.0, -7.0), + central: ("npc.yale.male.tail_back"), + ), + ), + (Ntouka, Male): ( + head: ( + offset: (-11.5, -8.0, -5.0), + central: ("npc.ntouka.male.head"), + ), + jaw: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.ntouka.male.jaw"), + ), + neck: ( + offset: (-3.5, 0.0, -4.5), + central: ("npc.ntouka.male.neck"), + ), + chest_front: ( + offset: (-5.5, -5.5, -7.5), + central: ("npc.ntouka.male.chest_front"), + ), + chest_back: ( + offset: (-6.5, -11.0, -8.5), + central: ("npc.ntouka.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -10.0, -4.0), + central: ("npc.ntouka.male.tail_front"), + ), + tail_back: ( + offset: (-9.5, -16.0, -2.0), + central: ("npc.ntouka.male.tail_back"), + ), + ), + (Ntouka, Female): ( + head: ( + offset: (-11.5, -8.0, -5.0), + central: ("npc.ntouka.male.head"), + ), + jaw: ( + offset: (-4.5, 0.0, -3.0), + central: ("npc.ntouka.male.jaw"), + ), + neck: ( + offset: (-3.5, 0.0, -4.5), + central: ("npc.ntouka.male.neck"), + ), + chest_front: ( + offset: (-5.5, -5.5, -7.5), + central: ("npc.ntouka.male.chest_front"), + ), + chest_back: ( + offset: (-6.5, -11.0, -8.5), + central: ("npc.ntouka.male.chest_back"), + ), + tail_front: ( + offset: (-3.5, -10.0, -4.0), + central: ("npc.ntouka.male.tail_front"), + ), + tail_back: ( + offset: (-9.5, -16.0, -2.0), + central: ("npc.ntouka.male.tail_back"), + ), + ), }) diff --git a/assets/voxygen/voxel/theropod_lateral_manifest.ron b/assets/voxygen/voxel/theropod_lateral_manifest.ron index e94b915411..7036d052c7 100644 --- a/assets/voxygen/voxel/theropod_lateral_manifest.ron +++ b/assets/voxygen/voxel/theropod_lateral_manifest.ron @@ -311,4 +311,108 @@ lateral: ("npc.sunlizard.male.foot_r"), ), ), + (Yale, Male): ( + hand_l: ( + offset: (-5.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + foot_r: ( + offset: (-1.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + ), + (Yale, Female): ( + hand_l: ( + offset: (-5.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.0, -9.0), + lateral: ("npc.yale.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.yale.male.leg_r"), + ), + foot_l: ( + offset: (-2.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + foot_r: ( + offset: (-1.5, -5.5, -12.0), + lateral: ("npc.yale.male.foot_r"), + ), + ), + (Ntouka, Male): ( + hand_l: ( + offset: (-4.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + foot_l: ( + offset: (-6.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + ), + (Ntouka, Female): ( + hand_l: ( + offset: (-4.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + hand_r: ( + offset: (0.0, -2.5, -8.0), + lateral: ("npc.ntouka.male.hand_r"), + ), + leg_l: ( + offset: (-5.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + leg_r: ( + offset: (0.0, -4.5, -4.5), + lateral: ("npc.ntouka.male.leg_r"), + ), + foot_l: ( + offset: (-6.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + foot_r: ( + offset: (-3.5, -6.5, -8.0), + lateral: ("npc.ntouka.male.foot_r"), + ), + ), }) diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_oni_blue.vox b/assets/voxygen/voxel/weapon/axe/2haxe_oni_blue.vox new file mode 100644 index 0000000000000000000000000000000000000000..97cfed50a3baa34e5ab4beea15a67d57c8e53645 GIT binary patch literal 2236 zcmai$YiL|$9>)LYJ#%uuOy+*cOvX0RB(=t*msA@xy+j+w^kQ_9rWbVa(rhV8S!xZz zMFY!rcdNCQbXU}FSBgqO(~_2|ADZB$6hz!2tAa)RAbu2NS@zrG@6=^M7u^F7&vVZC z{hxW?b7n#+TgFSXW;U{Jcr#|N)tHSAPYgALCmcTFl3j>aD&`_wi;TO_ea^jr>%o{q=E%q)^U27C?p4j1tD5s% z758u-dDRQ%suw(0eZht9Bd_Lyxta?ea-sXktA(qDt6gxR`^c-Kua3UDITyN*yn1Hq znXP9Q_mS7YYy-0m%;G-s8d+x}`)*_{jTQ47S!ZL#g>Fskr>Ww3P3(v4n%ECHbiZlb ziy&(rGq0IFHN!N+kdbrEJjZ4j6f|%3EJ|0Du4u&}b5Xb`9PUTqP!QefRYkXW)&ko? zXA3OZwXnVxSln-cML`RlF}N69436x`$hjC?3=Rb`I%9OkVdJoISh9=L8HdIFI4la{ zbSB^ua0$2s&n5wvfW!R+910S2Cg@DUCSjAXWS4|Z!s31s76nPzBy0*c1)G8;yA*5+ z7WY%IC`iGkVAHT^o>dx_?8q(+o90=iVNsBVO~YnjGq4$0vLm|;Yz8(1i-HVn1~$vP z%Cd$m?~3fQu;kGFEG!DLuvyp~y*bz%Yz{UDOAg)7!J;4sn}f~Mn}^NAl3gB_9J-%} zML`}m58Fy_D{Lz)*|oxwk>|IOdI`e%#a<~k#Y0MJ{h+NIYLGjkOMNZDsmMWdDX}( z@wp|wf2E2;=9lOw(Ls)oBV^nHm;eTORi(;3cdlP&|M?rVX3ZK+PfzQsqoz$Sy|1N- zf9s#Sc4={OMB(w>RnzA3&3a(hT1_7)>)fGXojdw~&K-YD{pTK4bTFmt{Uw#2T&AuQ zx5$P9+1@(Y$(Zc@l%gZ1^gdJT5z~!xrkcH`#u-zb^VDh6%8`2AwJ)lPr{em<`GPi1 zo3V+T!dJa1Zj)pYp`=Yyt` zL#7M&n65rzn&A9k#dPFBt{*Vn+TN<&YfKOC-mc2lvbL?vX>w?ZrnYrz_Mtx2R#&TM z`Esr5>s9%V^;)(xrGdUSm2dAR-26jmsZaQ}3gS_dl*rFa1@Q-=5X{i#xUW+OJjH zP_Jkru2?Fq=7u`0zUg}1+SjEcTY5BI?$u|PyLI)WWqR>h)BGvZhwqp^|G+dg*{L0y zJG5b-U2VCnUOIfA4!@qznUAx&sHcqM=u@>60C%&Oe=2S67$zEIpvRH=UKuOewiPsq@Ewc!#;YPpVif>bD)o zblcjadhn0GQ)YKsAHCV3^AlN>9zXg&pC58z*Y?p5wSSNF#PL@(^UA!QIs2~uvT#MK z9y_Glo<5=S%NI2|cSVDPgZj!Ot3mpg{41s}-}+&FU-JF>fA{$};M(u(=RCambN9mQ MzjW_f@h{KY_vLS&kpKVy literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_oni_red.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_oni_red.vox new file mode 100644 index 0000000000000000000000000000000000000000..b801b97ca935e83306cc1501520f3b1d913a2ab0 GIT binary patch literal 3260 zcmai$ZETfi8OQJEzOMV6mcE{z_m}o`l)4slIAARUGP^^kD&N-#L#FiqyPHBdEeD99Fa@*bqW3D3DOo5bCNxLS5j6v%m*U z%xeIeAeNXH{GiE24M3CERFaE=AGGP31`u0mx+d75&E$dDN;7%Q8OW92R#9Ph<)EtS2%@JIE7Q+K~DfD za3WYZA3Ew@vG_^tY$QTwJ)xc4wUfJc)1VIg$@=@-~`T7=c)75 zMf8v8AJN~%dfJ6f7tg7S=hTHx7dlwQ3h-SuO?EXj(N$OSlsqL*J&3v*LcWkM@It#?v#Y8Rp8Mn?X0jo&bKp4}$d>=E|UzK?}euc^dOk28|4J0eFEIc#rQj z!(18W%CN62`^vH}AX)UX=mE*12k--ah<%^seFJc+S+s!9vac+&05}mWc^=>6dvYTB zNA!>A?_xd8p_4-=$6Pt~1wxMZ4+!wNx+ZhXg@sqe!fVV&Ip)eS7l0S)#pjp{;Cu3- z<^Fm4=joqkUwQVGXBN(IA?7@Y^6V?mzOckK0OBgZgE;Q;>?@CE9!)@8hzoHc?&;~_ zJUx?IV6Fo1A&>%d70|>g5YE29Tm`hS@CvWwsV|^aK%;;LfEV(Gd{3UIpC>P(f0Gv3 zSCM@IDWX?oP9R101@MDn1?!9K3xpzbVc`@`;DkJZ6FBijo?j6iEPW#SNA!>A?_xbI zp;Kb65;`U30{B5e?E4b$VTrj)XmKV_1sn5GiMdM51;`h8@g?R0&TE-D%j~Pd zTorVIRCs7uVJA?_xdeL8pg( z0qH@f2OWSPV&C`he;1IWa0;hz0w?5&0s(Ly-;?9b2e%*Vy2h2hEKJbNg4AJKJUMot$+}ILkllta9Ahr{|qD?RVC8 z#910Ycfr|)i57eO*-o2&DQ&M@?Y3>R&UT!1_T`JtUU;9{9VP3TS!t_gSKH9Sh?Ngy zY~`_%tv*+^`)}N9`Q6S|y+rRhXIrj2b5EjwxXIkfc5|0A_UnmB+tt!%r!!C5vDCO7 zcFukXeg{4VCl5Kh_ZLo^W>itInqJ57nI=e;WRvvrYH5+un`N z4sLVy1Na>qN;WgP(hlz!u(@Z}S#vUJskS!TG(2SEpMS*G^yO^Jx~h$TZotMzx7g&w zR_pJp+Go}b*aPd=+E7o)##XPg-9z`;fo%_3eRa-eHk9qyqy4t9cdbos9kyL#TWtHt zuzjV}X3v${?Heo8_WK(@wwrIy*}@yUZRz~i?5!)W+x*4X?EKGOv5wXiHgw;oY}2|y zJ3dpf*_{RZ!_C!p`@J>x#;eX2&N+Mcm(Kq98)t`S25i^%e%rcbmHqYOc{_cqX2*V> zu}kk4?Y32y=U=*X!G62=w*BQ#AK2DGch~u6Yr{6TZ>ueRyJ3GmH}fC!KT{vJ{f|34 zvd7t(uRFWWUH*Iib%j)~=qqv%?olygNNT_Rap2_R!`N_VjnYWre+Yd+!(hc6GXF zCwhDTM?cPsd+nTj*ADD6d*RfZcI2lE_T9_Bvey=G*#plXwTE6lW8*)%Zj From<&'a Body> for Psyche { quadruped_small::Species::Truffler => 0.8, quadruped_small::Species::Frog => 0.4, quadruped_small::Species::Hare => 0.2, + quadruped_small::Species::Goat => 0.5, _ => 0.0, }, Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { @@ -146,6 +147,8 @@ impl<'a> From<&'a Body> for Psyche { quadruped_medium::Species::Horse => 0.7, quadruped_medium::Species::Cattle => 0.7, quadruped_medium::Species::Darkhound => 0.9, + quadruped_medium::Species::Dreadhorn => 0.8, + quadruped_medium::Species::Snowleopard => 0.7, _ => 0.5, }, Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index f34d5f93b6..cb93e2f39e 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -162,7 +162,7 @@ impl Body { (humanoid::Species::Danari, humanoid::BodyType::Female) => 0.75, _ => 0.75, }, - Body::QuadrupedSmall(_) => 0.7, + Body::QuadrupedSmall(_) => 0.6, Body::QuadrupedMedium(body) => match body.species { quadruped_medium::Species::Grolgar => 2.0, quadruped_medium::Species::Tarasque => 2.0, @@ -197,6 +197,8 @@ impl Body { theropod::Species::Woodraptor => 1.5, theropod::Species::Archaeos => 3.5, theropod::Species::Odonto => 3.5, + theropod::Species::Yale => 1.3, + theropod::Species::Ntouka => 3.0, _ => 1.8, }, Body::BirdMedium(_) => 1.0, @@ -261,6 +263,7 @@ impl Body { theropod::Species::Sandraptor => 2.6, theropod::Species::Woodraptor => 2.6, theropod::Species::Sunlizard => 2.5, + theropod::Species::Yale => 2.8, _ => 8.0, }, Body::BirdMedium(body) => match body.species { @@ -343,6 +346,8 @@ impl Body { quadruped_medium::Species::Yak => 1000, quadruped_medium::Species::Panda => 800, quadruped_medium::Species::Bear => 800, + quadruped_medium::Species::Moose => 600, + quadruped_medium::Species::Dreadhorn => 1100, _ => 400, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -370,6 +375,8 @@ impl Body { biped_large::Species::Yeti => 2000, biped_large::Species::Minotaur => 5000, biped_large::Species::Harvester => 2000, + biped_large::Species::Blueoni => 2300, + biped_large::Species::Redoni => 2300, _ => 1000, }, Body::BipedSmall(biped_small) => match biped_small.species { @@ -405,7 +412,6 @@ impl Body { quadruped_low::Species::Hakulaq => 400, quadruped_low::Species::Lavadrake => 900, quadruped_low::Species::Deadwood => 600, - _ => 200, }, } @@ -451,6 +457,8 @@ impl Body { quadruped_medium::Species::Yak => 30, quadruped_medium::Species::Panda => 40, quadruped_medium::Species::Bear => 40, + quadruped_medium::Species::Moose => 30, + quadruped_medium::Species::Dreadhorn => 50, _ => 20, }, Body::BirdMedium(bird_medium) => match bird_medium.species { diff --git a/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index 1208021085..3891c0a4f8 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -48,6 +48,8 @@ make_case_elim!( Tidalwarrior = 11, Yeti = 12, Harvester = 13, + Blueoni = 14, + Redoni = 15, } ); @@ -70,6 +72,8 @@ pub struct AllSpecies { pub tidalwarrior: SpeciesMeta, pub yeti: SpeciesMeta, pub harvester: SpeciesMeta, + pub oni_blue: SpeciesMeta, + pub oni_red: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -92,11 +96,13 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Tidalwarrior => &self.tidalwarrior, Species::Yeti => &self.yeti, Species::Harvester => &self.harvester, + Species::Blueoni => &self.oni_blue, + Species::Redoni => &self.oni_red, } } } -pub const ALL_SPECIES: [Species; 14] = [ +pub const ALL_SPECIES: [Species; 16] = [ Species::Ogre, Species::Cyclops, Species::Wendigo, @@ -111,6 +117,8 @@ pub const ALL_SPECIES: [Species; 14] = [ Species::Tidalwarrior, Species::Yeti, Species::Harvester, + Species::Blueoni, + Species::Redoni, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/fish_medium.rs b/common/src/comp/body/fish_medium.rs index 8ddd3695b2..924bf09f36 100644 --- a/common/src/comp/body/fish_medium.rs +++ b/common/src/comp/body/fish_medium.rs @@ -35,6 +35,7 @@ make_case_elim!( #[repr(u32)] pub enum Species { Marlin = 0, + Icepike = 1, } ); @@ -44,6 +45,7 @@ make_case_elim!( #[derive(Clone, Debug, Deserialize)] pub struct AllSpecies { pub marlin: SpeciesMeta, + pub icepike: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -53,11 +55,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies fn index(&self, &index: &'a Species) -> &Self::Output { match index { Species::Marlin => &self.marlin, + Species::Icepike => &self.icepike, } } } -pub const ALL_SPECIES: [Species; 1] = [Species::Marlin]; +pub const ALL_SPECIES: [Species; 2] = [Species::Marlin, Species::Icepike]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { type IntoIter = std::iter::Copied>; diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index d1b2b89b43..192e7559b5 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -59,6 +59,9 @@ pub enum Species { Yak = 26, Panda = 27, Bear = 28, + Dreadhorn = 29, + Moose = 30, + Snowleopard = 31, } /// Data representing per-species generic data. @@ -93,6 +96,9 @@ pub struct AllSpecies { pub yak: SpeciesMeta, pub panda: SpeciesMeta, pub bear: SpeciesMeta, + pub dreadhorn: SpeciesMeta, + pub moose: SpeciesMeta, + pub snowleopard: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -128,11 +134,14 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Yak => &self.yak, Species::Panda => &self.panda, Species::Bear => &self.bear, + Species::Dreadhorn => &self.dreadhorn, + Species::Moose => &self.moose, + Species::Snowleopard => &self.snowleopard, } } } -pub const ALL_SPECIES: [Species; 27] = [ +pub const ALL_SPECIES: [Species; 30] = [ Species::Grolgar, Species::Saber, Species::Tiger, @@ -160,6 +169,9 @@ pub const ALL_SPECIES: [Species; 27] = [ Species::Yak, Species::Panda, Species::Bear, + Species::Dreadhorn, + Species::Moose, + Species::Snowleopard, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/quadruped_small.rs b/common/src/comp/body/quadruped_small.rs index 12288bd687..1d4f294e64 100644 --- a/common/src/comp/body/quadruped_small.rs +++ b/common/src/comp/body/quadruped_small.rs @@ -58,6 +58,7 @@ pub enum Species { Beaver = 23, Hare = 24, Dog = 25, + Goat = 26, } /// Data representing per-species generic data. @@ -91,6 +92,7 @@ pub struct AllSpecies { pub beaver: SpeciesMeta, pub hare: SpeciesMeta, pub dog: SpeciesMeta, + pub goat: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -125,11 +127,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Beaver => &self.beaver, Species::Hare => &self.hare, Species::Dog => &self.dog, + Species::Goat => &self.goat, } } } -pub const ALL_SPECIES: [Species; 26] = [ +pub const ALL_SPECIES: [Species; 27] = [ Species::Pig, Species::Fox, Species::Sheep, @@ -156,6 +159,7 @@ pub const ALL_SPECIES: [Species; 26] = [ Species::Beaver, Species::Hare, Species::Dog, + Species::Goat, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/theropod.rs b/common/src/comp/body/theropod.rs index 54633ec9df..5f1abcda53 100644 --- a/common/src/comp/body/theropod.rs +++ b/common/src/comp/body/theropod.rs @@ -34,6 +34,8 @@ pub enum Species { Snowraptor = 3, Woodraptor = 4, Sunlizard = 5, + Yale = 6, + Ntouka = 7, } /// Data representing per-species generic data. @@ -45,6 +47,8 @@ pub struct AllSpecies { pub raptor_snow: SpeciesMeta, pub raptor_wood: SpeciesMeta, pub sunlizard: SpeciesMeta, + pub yale: SpeciesMeta, + pub ntouka: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -59,17 +63,21 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Snowraptor => &self.raptor_snow, Species::Woodraptor => &self.raptor_wood, Species::Sunlizard => &self.sunlizard, + Species::Yale => &self.yale, + Species::Ntouka => &self.ntouka, } } } -pub const ALL_SPECIES: [Species; 6] = [ +pub const ALL_SPECIES: [Species; 8] = [ Species::Archaeos, Species::Odonto, Species::Sandraptor, Species::Snowraptor, Species::Woodraptor, Species::Sunlizard, + Species::Yale, + Species::Ntouka, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/inventory/loadout_builder.rs b/common/src/comp/inventory/loadout_builder.rs index 405d44628c..5b8432345d 100644 --- a/common/src/comp/inventory/loadout_builder.rs +++ b/common/src/comp/inventory/loadout_builder.rs @@ -106,7 +106,8 @@ impl LoadoutBuilder { | quadruped_medium::Species::Grolgar | quadruped_medium::Species::Lion | quadruped_medium::Species::Bonerattler - | quadruped_medium::Species::Darkhound => { + | quadruped_medium::Species::Darkhound + | quadruped_medium::Species::Snowleopard => { main_tool = Some(Item::new_from_asset_expect( "common.items.npc_weapons.unique.quadmedquick", )); @@ -127,7 +128,10 @@ impl LoadoutBuilder { "common.items.npc_weapons.unique.quadmedjump", )); }, - quadruped_medium::Species::Tuskram | quadruped_medium::Species::Roshwalr => { + quadruped_medium::Species::Tuskram + | quadruped_medium::Species::Roshwalr + | quadruped_medium::Species::Moose + | quadruped_medium::Species::Dreadhorn => { main_tool = Some(Item::new_from_asset_expect( "common.items.npc_weapons.unique.quadmedcharge", )); @@ -187,7 +191,8 @@ impl LoadoutBuilder { Body::Theropod(theropod) => match theropod.species { theropod::Species::Sandraptor | theropod::Species::Snowraptor - | theropod::Species::Woodraptor => { + | theropod::Species::Woodraptor + | theropod::Species::Yale => { main_tool = Some(Item::new_from_asset_expect( "common.items.npc_weapons.unique.theropodbird", )); @@ -275,6 +280,16 @@ impl LoadoutBuilder { "common.items.npc_weapons.hammer.harvester_scythe", )); }, + (biped_large::Species::Blueoni, _) => { + main_tool = Some(Item::new_from_asset_expect( + "common.items.npc_weapons.axe.oni_blue_axe", + )); + }, + (biped_large::Species::Redoni, _) => { + main_tool = Some(Item::new_from_asset_expect( + "common.items.npc_weapons.hammer.oni_red_hammer", + )); + }, }, Body::Object(object::Body::Crossbow) => { main_tool = Some(Item::new_from_asset_expect( diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index fef074dd46..a05c794e69 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -46,6 +46,7 @@ impl Body { quadruped_small::Species::Cat => 70.0, quadruped_small::Species::Truffler => 70.0, quadruped_small::Species::Fungome => 70.0, + quadruped_small::Species::Goat => 80.0, _ => 125.0, }, Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { @@ -76,6 +77,9 @@ impl Body { quadruped_medium::Species::Yak => 90.0, quadruped_medium::Species::Panda => 90.0, quadruped_medium::Species::Bear => 90.0, + quadruped_medium::Species::Dreadhorn => 140.0, + quadruped_medium::Species::Moose => 130.0, + quadruped_medium::Species::Snowleopard => 160.0, }, Body::BipedLarge(body) => match body.species { biped_large::Species::Slysaurok => 100.0, @@ -152,6 +156,7 @@ impl Body { Body::Theropod(theropod) => match theropod.species { theropod::Species::Archaeos => 2.5, theropod::Species::Odonto => 2.5, + theropod::Species::Ntouka => 2.5, _ => 7.0, }, Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { diff --git a/voxygen/anim/src/biped_large/idle.rs b/voxygen/anim/src/biped_large/idle.rs index 5360b118c7..620e4241aa 100644 --- a/voxygen/anim/src/biped_large/idle.rs +++ b/voxygen/anim/src/biped_large/idle.rs @@ -31,8 +31,16 @@ impl Animation for IdleAnimation { let slow = (anim_time * 7.0 + PI).sin() * 1.5; let look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); let breathe = if s_a.beast { diff --git a/voxygen/anim/src/biped_large/mod.rs b/voxygen/anim/src/biped_large/mod.rs index 47a46ba1a7..f2d159f06e 100644 --- a/voxygen/anim/src/biped_large/mod.rs +++ b/voxygen/anim/src/biped_large/mod.rs @@ -208,6 +208,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (6.5, 5.0), (Yeti, _) => (8.5, 4.0), (Harvester, _) => (6.0, 11.0), + (Blueoni, _) => (10.5, -3.0), + (Redoni, _) => (10.5, -3.0), }, jaw: match (body.species, body.body_type) { (Ogre, _) => (0.0, 0.0), @@ -224,6 +226,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (0.0, 0.0), (Yeti, _) => (-5.0, -5.0), (Harvester, _) => (-2.0, -7.0), + (Blueoni, _) => (0.0, 3.5), + (Redoni, _) => (0.0, 3.5), }, upper_torso: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 27.5), @@ -241,6 +245,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (-1.0, 25.0), (Yeti, _) => (-1.0, 23.5), (Harvester, _) => (-1.0, 18.0), + (Blueoni, _) => (-1.0, 26.5), + (Redoni, _) => (-1.0, 26.5), }, lower_torso: match (body.species, body.body_type) { (Ogre, Male) => (1.0, -7.0), @@ -258,6 +264,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (0.0, -9.5), (Yeti, _) => (0.0, -6.5), (Harvester, _) => (-1.0, -4.5), + (Blueoni, _) => (0.0, -8.5), + (Redoni, _) => (0.0, -8.5), }, tail: match (body.species, body.body_type) { (Werewolf, _) => (-5.5, -2.0), @@ -283,6 +291,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (14.0, -0.5, 2.0), (Yeti, _) => (10.5, 1.0, -2.5), (Harvester, _) => (8.0, 1.0, -1.5), + (Blueoni, _) => (11.0, 2.0, -5.5), + (Redoni, _) => (11.0, 2.0, -5.5), }, hand: match (body.species, body.body_type) { (Ogre, Male) => (14.5, 0.0, -4.0), @@ -300,6 +310,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (15.5, -0.5, -3.0), (Yeti, _) => (12.0, 1.5, -6.0), (Harvester, _) => (11.5, 1.5, -5.5), + (Blueoni, _) => (13.5, 0.5, -8.0), + (Redoni, _) => (13.5, 0.5, -8.0), }, leg: match (body.species, body.body_type) { (Ogre, Male) => (0.0, 0.0, -4.0), @@ -317,6 +329,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (2.5, 0.0, -5.5), (Yeti, _) => (4.0, 0.0, -5.5), (Harvester, _) => (3.5, 1.0, -4.0), + (Blueoni, _) => (4.5, 2.0, -5.5), + (Redoni, _) => (4.5, 2.0, -5.5), }, foot: match (body.species, body.body_type) { (Ogre, Male) => (4.0, 1.0, -12.0), @@ -334,6 +348,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => (3.5, 0.5, -10.5), (Yeti, _) => (4.5, 0.5, -12.5), (Harvester, _) => (4.5, 0.5, -9.5), + (Blueoni, _) => (5.0, 5.0, -12.5), + (Redoni, _) => (5.0, 5.0, -12.5), }, scaler: match (body.species, body.body_type) { (Ogre, Male) => 1.4, @@ -351,6 +367,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => 2.0, (Yeti, _) => 1.5, (Harvester, _) => 1.5, + (Blueoni, _) => 1.5, + (Redoni, _) => 1.5, }, tempo: match (body.species, body.body_type) { (Ogre, Male) => 0.9, @@ -377,6 +395,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tidalwarrior, _) => 14.0, (Yeti, _) => 12.5, (Harvester, _) => 7.5, + (Blueoni, _) => 12.5, + (Redoni, _) => 12.5, }, shl: match (body.species, body.body_type) { (Dullahan, _) => (-4.75, -11.0, 8.5, 1.47, -0.2, 0.0), @@ -398,6 +418,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Cyclops, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), (Troll, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), (Yeti, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), + (Blueoni, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), + (Redoni, _) => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), _ => (-6.0, -10.0, 17.0, 1.57, -0.57, 0.0), }, hhr: match (body.species, body.body_type) { @@ -405,6 +427,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Cyclops, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), (Troll, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), (Yeti, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), + (Blueoni, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), + (Redoni, _) => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), _ => (-6.0, -10.0, 0.0, 1.57, -0.57, 0.0), }, hc: match (body.species, body.body_type) { @@ -412,6 +436,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Cyclops, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), (Troll, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), (Yeti, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), + (Blueoni, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), + (Redoni, _) => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), _ => (8.5, 6.0, -12.0, -0.57, -1.57, 1.0), }, sthl: match (body.species, body.body_type) { diff --git a/voxygen/anim/src/biped_large/run.rs b/voxygen/anim/src/biped_large/run.rs index 7b42745169..c48f7f8a9f 100644 --- a/voxygen/anim/src/biped_large/run.rs +++ b/voxygen/anim/src/biped_large/run.rs @@ -70,8 +70,16 @@ impl Animation for RunAnimation { // let shortalt = (acc_vel * lab * speedmult + PI * 3.0 + 0.7).sin(); let look = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 2.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); let speedadjust = if speed < 5.0 { 0.0 } else { speed / 21.0 }; diff --git a/voxygen/anim/src/biped_large/wield.rs b/voxygen/anim/src/biped_large/wield.rs index 36a818c39b..3e96017bea 100644 --- a/voxygen/anim/src/biped_large/wield.rs +++ b/voxygen/anim/src/biped_large/wield.rs @@ -39,13 +39,29 @@ impl Animation for WieldAnimation { let slow = (anim_time * 3.5 + PI).sin(); let tailmove = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 0.25, - (global_time + anim_time / 2.0).floor().mul(1337.0).sin() * 0.125, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.25, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.125, ); let look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); let breathe = if s_a.beast { diff --git a/voxygen/anim/src/bird_medium/feed.rs b/voxygen/anim/src/bird_medium/feed.rs index 608c8f7ea2..f717628af0 100644 --- a/voxygen/anim/src/bird_medium/feed.rs +++ b/voxygen/anim/src/bird_medium/feed.rs @@ -30,8 +30,16 @@ impl Animation for FeedAnimation { let wave_slow_cos = (anim_time * 4.5).cos(); let duck_head_look = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); next.head.position = Vec3::new(0.0, s_a.head.0 + 1.0, -2.0 + s_a.head.1); diff --git a/voxygen/anim/src/bird_medium/idle.rs b/voxygen/anim/src/bird_medium/idle.rs index 2acc5ceaa8..f96992a739 100644 --- a/voxygen/anim/src/bird_medium/idle.rs +++ b/voxygen/anim/src/bird_medium/idle.rs @@ -28,13 +28,21 @@ impl Animation for IdleAnimation { let wave_slow_cos = (anim_time * 4.5).cos(); let duck_head_look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); next.torso.scale = Vec3::one() / 11.0; - next.wing_l.scale = Vec3::one() * 1.05; - next.wing_r.scale = Vec3::one() * 1.05; + next.wing_l.scale = Vec3::one() * 1.02; + next.wing_r.scale = Vec3::one() * 1.02; next.leg_l.scale = Vec3::one() / 11.0; next.leg_r.scale = Vec3::one() / 11.0; diff --git a/voxygen/anim/src/bird_medium/mod.rs b/voxygen/anim/src/bird_medium/mod.rs index 1cc817ea53..8bffda2e5a 100644 --- a/voxygen/anim/src/bird_medium/mod.rs +++ b/voxygen/anim/src/bird_medium/mod.rs @@ -91,7 +91,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { Self { head: match (body.species, body.body_type) { (Duck, _) => (4.0, 3.0), - (Chicken, _) => (4.0, 3.0), + (Chicken, Male) => (3.0, 4.5), + (Chicken, Female) => (3.0, 6.0), (Goose, _) => (5.0, 2.5), (Peacock, _) => (1.0, 1.0), (Eagle, _) => (2.5, 5.0), @@ -102,7 +103,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, chest: match (body.species, body.body_type) { (Duck, _) => (0.0, 5.0), - (Chicken, _) => (0.0, 5.0), + (Chicken, Male) => (0.0, 6.5), + (Chicken, Female) => (0.0, 6.5), (Goose, _) => (0.0, 8.0), (Peacock, _) => (0.0, 10.0), (Eagle, _) => (0.0, 8.0), @@ -113,7 +115,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, tail: match (body.species, body.body_type) { (Duck, _) => (-3.0, 1.5), - (Chicken, _) => (-3.0, 1.5), + (Chicken, Male) => (-7.5, 3.5), + (Chicken, Female) => (-4.5, 3.0), (Goose, _) => (-5.0, 3.0), (Peacock, _) => (-5.5, 2.0), (Eagle, _) => (-8.0, -4.0), @@ -124,7 +127,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, wing: match (body.species, body.body_type) { (Duck, _) => (2.75, 0.0, 1.0), - (Chicken, _) => (2.75, 0.0, 1.0), + (Chicken, Male) => (3.0, -1.0, 2.5), + (Chicken, Female) => (3.0, -1.5, 2.5), (Goose, _) => (3.75, -1.0, 2.0), (Peacock, _) => (3.0, 0.0, 1.0), (Eagle, _) => (3.0, -8.0, 4.0), @@ -135,7 +139,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, foot: match (body.species, body.body_type) { (Duck, _) => (2.0, -1.5, 4.0), - (Chicken, _) => (2.0, -1.5, 4.0), + (Chicken, Male) => (2.0, 0.0, 6.0), + (Chicken, Female) => (2.0, 0.0, 6.0), (Goose, _) => (2.0, -1.5, 7.0), (Peacock, _) => (2.0, -2.5, 8.0), (Eagle, _) => (2.0, -2.0, 8.0), @@ -145,6 +150,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Cockatrice, _) => (4.0, -3.5, 12.0), }, feed: match (body.species, body.body_type) { + (Chicken, _) => 1.2, (Goose, _) => 1.4, (Peacock, _) => 1.6, (Eagle, _) => 1.2, diff --git a/voxygen/anim/src/character/climb.rs b/voxygen/anim/src/character/climb.rs index 1f2b439f11..721f3e0182 100644 --- a/voxygen/anim/src/character/climb.rs +++ b/voxygen/anim/src/character/climb.rs @@ -44,8 +44,16 @@ impl Animation for ClimbAnimation { ((5.0 / (0.6 + 4.0 * ((anim_time * constant * 1.5 + PI / 2.0).sin()).powi(2))).sqrt()) * ((anim_time * constant * 1.5 + PI / 2.0).sin()); let head_look = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 0.3, - (global_time + anim_time / 2.0).floor().mul(1337.0).sin() * 0.15, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.3, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.15, ); let stagnant = if speed > -0.7 { 1.0 } else { 0.0 }; //sets static position when there is no movement diff --git a/voxygen/anim/src/dragon/idle.rs b/voxygen/anim/src/dragon/idle.rs index 3d80739a0d..22789771e2 100644 --- a/voxygen/anim/src/dragon/idle.rs +++ b/voxygen/anim/src/dragon/idle.rs @@ -28,8 +28,16 @@ impl Animation for IdleAnimation { let slowalt = (anim_time * 2.5 + PI / 2.0).sin(); let dragon_look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); next.head_upper.scale = Vec3::one() * 1.05; diff --git a/voxygen/anim/src/dyn_lib.rs b/voxygen/anim/src/dyn_lib.rs index 0e3343bd55..4c39922032 100644 --- a/voxygen/anim/src/dyn_lib.rs +++ b/voxygen/anim/src/dyn_lib.rs @@ -71,7 +71,7 @@ impl LoadedLib { let lib_path = LoadedLib::determine_path(); // Try to load the library. - let lib = match Library::new(lib_path.clone()) { + let lib = match unsafe { Library::new(lib_path.clone()) } { Ok(lib) => lib, Err(e) => panic!( "Tried to load dynamic library from {:?}, but it could not be found. The first \ diff --git a/voxygen/anim/src/fish_medium/idle.rs b/voxygen/anim/src/fish_medium/idle.rs index 4ea180416e..e99b7d285a 100644 --- a/voxygen/anim/src/fish_medium/idle.rs +++ b/voxygen/anim/src/fish_medium/idle.rs @@ -29,6 +29,7 @@ impl Animation for IdleAnimation { let slow = (anim_time * 3.5 + PI).sin(); let slowalt = (anim_time * 3.5 + PI + 0.2).sin(); + next.jaw.scale = Vec3::one() * 0.98; next.chest_front.scale = Vec3::one() / 11.0; next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); diff --git a/voxygen/anim/src/fish_medium/mod.rs b/voxygen/anim/src/fish_medium/mod.rs index 2fd5d45f45..8c68c9e4d8 100644 --- a/voxygen/anim/src/fish_medium/mod.rs +++ b/voxygen/anim/src/fish_medium/mod.rs @@ -94,27 +94,35 @@ impl<'a> From<&'a Body> for SkeletonAttr { Self { head: match (body.species, body.body_type) { (Marlin, _) => (2.0, 1.5), + (Icepike, _) => (3.0, 1.0), }, jaw: match (body.species, body.body_type) { (Marlin, _) => (2.5, -3.0), + (Icepike, _) => (0.0, 0.0), }, chest_front: match (body.species, body.body_type) { (Marlin, _) => (0.0, 2.5), + (Icepike, _) => (0.0, 2.5), }, chest_back: match (body.species, body.body_type) { (Marlin, _) => (-1.0, 1.0), + (Icepike, _) => (-4.5, 0.0), }, tail: match (body.species, body.body_type) { (Marlin, _) => (-7.0, 0.0), + (Icepike, _) => (-0.5, 1.5), }, fin: match (body.species, body.body_type) { (Marlin, _) => (2.5, 1.0, 3.5), + (Icepike, _) => (3.5, 3.0, 0.0), }, tempo: match (body.species, body.body_type) { (Marlin, _) => 4.0, + (Icepike, _) => 4.0, }, amplitude: match (body.species, body.body_type) { (Marlin, _) => 4.0, + (Icepike, _) => 4.0, }, } } diff --git a/voxygen/anim/src/golem/idle.rs b/voxygen/anim/src/golem/idle.rs index 2b139c96a2..5f170b8144 100644 --- a/voxygen/anim/src/golem/idle.rs +++ b/voxygen/anim/src/golem/idle.rs @@ -28,8 +28,16 @@ impl Animation for IdleAnimation { let breathe = (anim_time * lab + 1.5 * PI).sin(); let look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); next.head.scale = Vec3::one() * 1.02; next.jaw.scale = Vec3::one() * 1.02; diff --git a/voxygen/anim/src/quadruped_low/idle.rs b/voxygen/anim/src/quadruped_low/idle.rs index fc3331b6ea..df51694acc 100644 --- a/voxygen/anim/src/quadruped_low/idle.rs +++ b/voxygen/anim/src/quadruped_low/idle.rs @@ -28,8 +28,16 @@ impl Animation for IdleAnimation { let slowalt = (anim_time * 2.5 + PI / 2.0).sin(); let dragon_look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.2, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.1, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.2, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.1, ); next.jaw.scale = Vec3::one() * 0.98; next.chest.scale = Vec3::one() * s_a.scaler / 11.0; diff --git a/voxygen/anim/src/quadruped_medium/feed.rs b/voxygen/anim/src/quadruped_medium/feed.rs index 410b4c109c..75589aeba1 100644 --- a/voxygen/anim/src/quadruped_medium/feed.rs +++ b/voxygen/anim/src/quadruped_medium/feed.rs @@ -30,8 +30,16 @@ impl Animation for FeedAnimation { let transition = ((anim_time.powf(2.0)).min(1.0)) * s_a.feed.1; let look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); if s_a.feed.0 { diff --git a/voxygen/anim/src/quadruped_medium/idle.rs b/voxygen/anim/src/quadruped_medium/idle.rs index 194be1578c..231ed7fb82 100644 --- a/voxygen/anim/src/quadruped_medium/idle.rs +++ b/voxygen/anim/src/quadruped_medium/idle.rs @@ -27,12 +27,28 @@ impl Animation for IdleAnimation { let slow = (anim_time * 3.5 + PI).sin(); let look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); let tailmove = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 0.25, - (global_time + anim_time / 2.0).floor().mul(1337.0).sin() * 0.125, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.25, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.125, ); next.neck.scale = Vec3::one() * 1.02; diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index 6e8a02bcae..c1209c065a 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -164,13 +164,17 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Kelpie, _) => (4.0, -1.0), (Horse, _) => (4.5, 2.5), (Barghest, _) => (0.5, -2.5), - (Cattle, Male) => (0.5, 3.5), + (Cattle, Male) => (2.0, 3.5), (Cattle, Female) => (2.5, 4.0), (Darkhound, _) => (3.0, -1.0), (Highland, _) => (2.5, 5.0), (Yak, _) => (2.5, 5.0), (Panda, _) => (0.0, 0.5), (Bear, _) => (0.5, 1.5), + (Dreadhorn, _) => (-2.5, 7.0), + (Moose, Male) => (-0.5, 5.0), + (Moose, Female) => (3.5, 0.5), + (Snowleopard, _) => (1.5, 0.5), }, neck: match (body.species, body.body_type) { (Grolgar, _) => (1.0, -1.0), @@ -201,6 +205,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (0.0, 0.0), (Panda, _) => (0.5, 0.0), (Bear, _) => (0.5, 0.0), + (Dreadhorn, _) => (0.5, 0.0), + (Moose, _) => (-0.5, 0.5), + (Snowleopard, _) => (0.0, 1.5), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (7.0, 2.0), @@ -231,6 +238,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (6.0, -8.0), (Panda, _) => (3.0, -3.0), (Bear, _) => (3.5, -2.0), + (Dreadhorn, _) => (7.0, -5.0), + (Moose, Male) => (10.0, -7.0), + (Moose, Female) => (6.0, -2.5), + (Snowleopard, _) => (3.0, -3.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), @@ -261,6 +272,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (-8.0, 2.5), (Panda, _) => (-9.5, 0.0), (Bear, _) => (-10.0, -0.5), + (Dreadhorn, _) => (-5.5, 1.5), + (Moose, _) => (-12.5, 3.5), + (Snowleopard, _) => (-10.5, 3.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), @@ -291,6 +305,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (7.0, 15.5), (Panda, _) => (7.0, 13.5), (Bear, _) => (7.0, 14.5), + (Dreadhorn, _) => (1.5, 15.5), + (Moose, _) => (1.5, 19.5), + (Snowleopard, _) => (1.5, 13.0), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), @@ -321,6 +338,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (-8.0, -0.5), (Panda, _) => (-11.0, -0.5), (Bear, _) => (-11.0, -0.5), + (Dreadhorn, _) => (-20.0, -1.0), + (Moose, _) => (-10.0, -1.0), + (Snowleopard, _) => (-11.0, 0.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), @@ -351,6 +371,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (3.0, -5.0), (Panda, _) => (1.0, 4.0), (Bear, _) => (1.0, 4.0), + (Dreadhorn, _) => (1.5, 3.0), + (Moose, Male) => (6.0, 1.0), + (Moose, Female) => (2.0, 4.5), + (Snowleopard, _) => (1.5, 3.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (7.5, -5.5, -1.0), @@ -380,7 +404,10 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Highland, _) => (5.5, -2.5, 0.0), (Yak, _) => (4.5, -2.0, -1.5), (Panda, _) => (7.5, -5.5, -2.0), - (Bear, _) => (7.5, -5.5, -2.0), + (Bear, _) => (3.5, -4.5, -3.5), + (Dreadhorn, _) => (8.5, -7.0, -0.5), + (Moose, _) => (5.5, -4.0, 1.0), + (Snowleopard, _) => (6.5, -4.0, -2.5), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -4.0), @@ -411,6 +438,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (4.5, -6.0, -1.0), (Panda, _) => (7.0, -7.0, -2.0), (Bear, _) => (6.5, -6.5, -2.0), + (Dreadhorn, _) => (6.0, 0.0, -3.0), + (Moose, _) => (4.5, -10.0, -2.0), + (Snowleopard, _) => (5.5, -5.0, -1.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -4.0), @@ -441,6 +471,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (-0.5, 0.0, -5.0), (Panda, _) => (-1.0, 2.0, -4.5), (Bear, _) => (0.0, 2.0, -5.5), + (Dreadhorn, _) => (-0.5, 0.5, -5.0), + (Moose, _) => (-1.0, 1.5, -9.5), + (Snowleopard, _) => (0.5, 0.5, -4.5), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.5, -1.5, -3.0), @@ -471,6 +504,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Yak, _) => (-0.5, -0.5, -5.0), (Panda, _) => (-0.5, 0.5, -5.0), (Bear, _) => (0.5, 0.5, -6.0), + (Dreadhorn, _) => (-0.5, 0.5, -3.5), + (Moose, _) => (-1.0, 0.0, -6.5), + (Snowleopard, _) => (0.5, 0.5, -5.5), }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.3), @@ -480,18 +516,21 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Tarasque, _) => (1.3), (Tiger, _) => (1.2), (Catoblepas, _) => (1.3), - (Roshwalr, _) => (1.2), + (Roshwalr, _) => (1.3), (Barghest, _) => (1.5), (Antelope, _) => (1.2), - (Kelpie, _) => (1.3), + (Kelpie, _) => (1.4), (Donkey, _) => (1.2), - (Horse, _) => (1.4), + (Horse, _) => (1.45), (Zebra, _) => (1.3), (Cattle, _) => (1.7), (Highland, _) => (1.7), (Bear, _) => (1.7), (Yak, _) => (1.7), - (Camel, _) => (1.4), + (Camel, _) => (1.45), + (Dreadhorn, _) => (2.0), + (Moose, _) => (1.1), + (Snowleopard, _) => (1.2), _ => (1.0), }, startangle: match (body.species, body.body_type) { @@ -549,6 +588,9 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Kelpie, _) => (0.95), (Horse, _) => (0.85), (Darkhound, _) => (1.2), + (Dreadhorn, _) => (0.85), + (Moose, _) => (0.9), + (Snowleopard, _) => (1.1), _ => (1.0), }, feed: match (body.species, body.body_type) { diff --git a/voxygen/anim/src/quadruped_medium/run.rs b/voxygen/anim/src/quadruped_medium/run.rs index 7d7b117e15..6867e1d4c6 100644 --- a/voxygen/anim/src/quadruped_medium/run.rs +++ b/voxygen/anim/src/quadruped_medium/run.rs @@ -40,8 +40,16 @@ impl Animation for RunAnimation { // let shortalt = (acc_vel * (1.0) * lab * speedmult + PI * 3.0 / 8.0 - 0.5).sin(); let look = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 2.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); let speedadjust = if speed < 5.0 { 0.0 } else { speed / 24.0 }; diff --git a/voxygen/anim/src/quadruped_small/feed.rs b/voxygen/anim/src/quadruped_small/feed.rs index 74ef3e5acd..de98243678 100644 --- a/voxygen/anim/src/quadruped_small/feed.rs +++ b/voxygen/anim/src/quadruped_small/feed.rs @@ -29,8 +29,16 @@ impl Animation for FeedAnimation { let slow_alt = (anim_time * 3.5 + PI).sin(); let head_look = Vec2::new( - (global_time + anim_time / 2.0).floor().mul(7331.0).sin() * 1.0, - (global_time + anim_time / 2.0).floor().mul(1337.0).sin() * 0.5, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(7331.0) + .sin() + * 1.0, + (global_time / 2.0 + anim_time / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.5, ); next.chest.scale = Vec3::one() / 11.0 * s_a.scaler; diff --git a/voxygen/anim/src/quadruped_small/idle.rs b/voxygen/anim/src/quadruped_small/idle.rs index 046d7065ae..f21d5963e2 100644 --- a/voxygen/anim/src/quadruped_small/idle.rs +++ b/voxygen/anim/src/quadruped_small/idle.rs @@ -28,8 +28,16 @@ impl Animation for IdleAnimation { let slow_alt = (anim_time * 3.5 + PI / 2.0).sin(); let head_look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + slow * 0.2); diff --git a/voxygen/anim/src/quadruped_small/mod.rs b/voxygen/anim/src/quadruped_small/mod.rs index 322d5d4ccc..31bbfbbb72 100644 --- a/voxygen/anim/src/quadruped_small/mod.rs +++ b/voxygen/anim/src/quadruped_small/mod.rs @@ -132,6 +132,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hare, Male) => (3.0, 2.0), (Hare, Female) => (2.5, 3.0), (Dog, _) => (3.0, 4.5), + (Goat, _) => (3.5, 4.0), }, chest: match (body.species, body.body_type) { (Pig, _) => (0.0, 6.0), @@ -161,6 +162,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hare, Male) => (-2.0, 7.0), (Hare, Female) => (-2.0, 6.0), (Dog, _) => (-2.0, 9.5), + (Goat, _) => (2.0, 7.5), }, feet_f: match (body.species, body.body_type) { (Pig, _) => (4.5, 3.5, -1.0), @@ -190,6 +192,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hare, Male) => (3.0, 1.0, -3.0), (Hare, Female) => (3.0, 0.5, -4.0), (Dog, _) => (3.5, 3.0, -2.5), + (Goat, _) => (3.0, 2.5, -3.5), }, feet_b: match (body.species, body.body_type) { (Pig, _) => (3.5, -2.0, 0.0), @@ -219,6 +222,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hare, Male) => (3.5, -1.0, -2.0), (Hare, Female) => (3.5, -3.0, -2.0), (Dog, _) => (3.0, -3.5, -2.5), + (Goat, _) => (3.0, -4.0, -2.0), }, tail: match (body.species, body.body_type) { (Pig, _) => (-4.5, 2.5), @@ -248,6 +252,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hare, Male) => (-4.0, -1.0), (Hare, Female) => (-4.0, 2.0), (Dog, _) => (-5.0, 0.5), + (Goat, _) => (-7.0, 0.0), }, scaler: match (body.species, body.body_type) { (Pig, _) => (0.9), @@ -320,6 +325,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Porcupine, _) => (0.9), (Beaver, _) => (0.9), (Hare, _) => (0.8), + (Goat, _) => (0.8), _ => (1.0), }, spring: match (body.species, body.body_type) { @@ -344,6 +350,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Beaver, _) => (1.3), (Hare, Male) => (2.2), (Hare, Female) => (2.5), + (Goat, _) => (1.2), _ => (1.0), }, feed: match (body.species, body.body_type) { diff --git a/voxygen/anim/src/theropod/idle.rs b/voxygen/anim/src/theropod/idle.rs index 8980af32e6..1f49f8e197 100644 --- a/voxygen/anim/src/theropod/idle.rs +++ b/voxygen/anim/src/theropod/idle.rs @@ -24,8 +24,16 @@ impl Animation for IdleAnimation { let breathe = (anim_time * 0.8).sin(); let head_look = Vec2::new( - (global_time + anim_time / 8.0).floor().mul(7331.0).sin() * 0.5, - (global_time + anim_time / 8.0).floor().mul(1337.0).sin() * 0.25, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + (global_time / 2.0 + anim_time / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, ); next.head.scale = Vec3::one() * 1.02; @@ -33,6 +41,12 @@ impl Animation for IdleAnimation { next.jaw.scale = Vec3::one() * 0.98; next.foot_l.scale = Vec3::one() * 0.96; next.foot_r.scale = Vec3::one() * 0.96; + next.leg_l.scale = Vec3::one() * 1.02; + next.leg_r.scale = Vec3::one() * 1.02; + next.hand_l.scale = Vec3::one() * 0.98; + next.hand_r.scale = Vec3::one() * 0.98; + next.tail_front.scale = Vec3::one() * 1.02; + next.tail_back.scale = Vec3::one() * 0.98; next.chest_front.scale = Vec3::one() / s_a.scaler; next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + breathe * 0.3); @@ -40,7 +54,7 @@ impl Animation for IdleAnimation { * Quaternion::rotation_z(head_look.x); next.jaw.position = Vec3::new(0.0, s_a.jaw.0, s_a.jaw.1); - next.jaw.orientation = Quaternion::rotation_x(breathe * 0.05); + next.jaw.orientation = Quaternion::rotation_x(breathe * 0.05 - 0.05); next.neck.position = Vec3::new(0.0, s_a.neck.0, s_a.neck.1 + breathe * 0.2); next.neck.orientation = Quaternion::rotation_x(-0.1); diff --git a/voxygen/anim/src/theropod/mod.rs b/voxygen/anim/src/theropod/mod.rs index 200fac9839..6fe60f322a 100644 --- a/voxygen/anim/src/theropod/mod.rs +++ b/voxygen/anim/src/theropod/mod.rs @@ -128,6 +128,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (8.0, 5.0), (Woodraptor, _) => (8.0, 5.0), (Sunlizard, _) => (6.5, 3.5), + (Yale, _) => (7.0, 14.0), + (Ntouka, _) => (2.0, 2.5), }, jaw: match (body.species, body.body_type) { (Archaeos, _) => (1.0, -7.0), @@ -136,6 +138,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (0.0, -4.0), (Woodraptor, _) => (0.0, -4.0), (Sunlizard, _) => (2.0, -2.5), + (Yale, _) => (2.0, -9.5), + (Ntouka, _) => (0.0, -4.0), }, neck: match (body.species, body.body_type) { (Archaeos, _) => (4.5, -2.0), @@ -144,6 +148,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (4.0, 2.5), (Woodraptor, _) => (4.0, 2.5), (Sunlizard, _) => (2.5, 1.5), + (Yale, _) => (2.0, 4.0), + (Ntouka, _) => (4.0, 0.0), }, chest_front: match (body.species, body.body_type) { (Archaeos, _) => (0.0, 20.0), @@ -152,6 +158,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (0.0, 15.5), (Woodraptor, _) => (0.0, 15.5), (Sunlizard, _) => (0.0, 14.0), + (Yale, _) => (0.0, 19.5), + (Ntouka, _) => (0.0, 13.0), }, chest_back: match (body.species, body.body_type) { (Archaeos, _) => (-5.5, -1.0), @@ -160,6 +168,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (-3.0, 0.5), (Woodraptor, _) => (-3.0, 0.5), (Sunlizard, _) => (-2.0, 0.0), + (Yale, _) => (-3.0, -1.0), + (Ntouka, _) => (-4.5, 1.0), }, tail_front: match (body.species, body.body_type) { (Archaeos, _) => (-9.0, -1.5), @@ -168,6 +178,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (-9.5, -1.0), (Woodraptor, _) => (-9.5, -1.0), (Sunlizard, _) => (-8.5, -2.0), + (Yale, _) => (-9.5, -4.0), + (Ntouka, _) => (-9.5, -3.5), }, tail_back: match (body.species, body.body_type) { (Archaeos, _) => (-8.0, -0.5), @@ -176,6 +188,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (-10.5, 1.0), (Woodraptor, _) => (-10.5, 0.5), (Sunlizard, _) => (-10.0, -0.5), + (Yale, _) => (-5.0, -2.5), + (Ntouka, _) => (-9.5, -2.0), }, hand: match (body.species, body.body_type) { (Archaeos, _) => (3.0, 0.0, -4.0), @@ -184,6 +198,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (2.5, 3.0, 1.0), (Woodraptor, _) => (2.5, 3.0, 1.0), (Sunlizard, _) => (2.5, 1.5, -0.5), + (Yale, _) => (3.0, 2.0, -0.5), + (Ntouka, _) => (3.5, 3.0, -4.0), }, leg: match (body.species, body.body_type) { (Archaeos, _) => (2.5, -3.0, -4.0), @@ -192,6 +208,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (1.5, -2.5, -3.0), (Woodraptor, _) => (1.5, -2.5, -3.0), (Sunlizard, _) => (2.5, -2.5, -3.0), + (Yale, _) => (3.0, -3.5, -4.0), + (Ntouka, _) => (4.5, -5.5, -4.0), }, foot: match (body.species, body.body_type) { (Archaeos, _) => (3.0, -0.5, -7.0), @@ -200,6 +218,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (2.0, 0.0, -3.0), (Woodraptor, _) => (2.0, 0.0, -3.0), (Sunlizard, _) => (1.0, -0.5, -2.5), + (Yale, _) => (1.5, 1.0, -3.5), + (Ntouka, _) => (1.5, -1.0, -2.5), }, scaler: match (body.species, body.body_type) { (Archaeos, _) => (3.0), @@ -208,6 +228,8 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Snowraptor, _) => (8.0), (Woodraptor, _) => (8.0), (Sunlizard, _) => (8.0), + (Yale, _) => (7.0), + (Ntouka, _) => (3.0), }, } } diff --git a/voxygen/src/ui/widgets/item_tooltip.rs b/voxygen/src/ui/widgets/item_tooltip.rs new file mode 100644 index 0000000000..31f16e6007 --- /dev/null +++ b/voxygen/src/ui/widgets/item_tooltip.rs @@ -0,0 +1,508 @@ +use super::image_frame::ImageFrame; +use conrod_core::{ + builder_method, builder_methods, image, input::global::Global, position::Dimension, text, + widget, widget_ids, Color, Colorable, FontSize, Positionable, Sizeable, Ui, UiCell, Widget, + WidgetCommon, WidgetStyle, +}; +use std::time::{Duration, Instant}; +#[derive(Copy, Clone)] +struct Hover(widget::Id, [f64; 2]); +#[derive(Copy, Clone)] +enum HoverState { + Hovering(Hover), + Fading(Instant, Hover, Option<(Instant, widget::Id)>), + Start(Instant, widget::Id), + None, +} + +// Spacing between the tooltip and mouse +const MOUSE_PAD_Y: f64 = 15.0; +const TEXT_COLOR: Color = Color::Rgba(1.0, 1.0, 1.0, 1.0); // Default text color + +pub struct ItemTooltipManager { + tooltip_id: widget::Id, + state: HoverState, + // How long before a tooltip is displayed when hovering + hover_dur: Duration, + // How long it takes a tooltip to disappear + fade_dur: Duration, + // Current scaling of the ui + logical_scale_factor: f64, +} +impl ItemTooltipManager { + pub fn new( + mut generator: widget::id::Generator, + hover_dur: Duration, + fade_dur: Duration, + logical_scale_factor: f64, + ) -> Self { + Self { + tooltip_id: generator.next(), + state: HoverState::None, + hover_dur, + fade_dur, + logical_scale_factor, + } + } + + pub fn maintain(&mut self, input: &Global, logical_scale_factor: f64) { + self.logical_scale_factor = logical_scale_factor; + + let current = &input.current; + + if let Some(um_id) = current.widget_under_mouse { + match self.state { + HoverState::Hovering(hover) if um_id == hover.0 => (), + HoverState::Hovering(hover) => { + self.state = + HoverState::Fading(Instant::now(), hover, Some((Instant::now(), um_id))) + }, + HoverState::Fading(_, _, Some((_, id))) if um_id == id => {}, + HoverState::Fading(start, hover, _) => { + self.state = HoverState::Fading(start, hover, Some((Instant::now(), um_id))) + }, + HoverState::Start(_, id) if um_id == id => (), + HoverState::Start(_, _) | HoverState::None => { + self.state = HoverState::Start(Instant::now(), um_id) + }, + } + } else { + match self.state { + HoverState::Hovering(hover) => { + self.state = HoverState::Fading(Instant::now(), hover, None) + }, + HoverState::Fading(start, hover, Some((_, _))) => { + self.state = HoverState::Fading(start, hover, None) + }, + HoverState::Start(_, _) => self.state = HoverState::None, + HoverState::Fading(_, _, None) | HoverState::None => (), + } + } + + // Handle fade timing + if let HoverState::Fading(start, _, maybe_hover) = self.state { + if start.elapsed() > self.fade_dur { + self.state = match maybe_hover { + Some((start, hover)) => HoverState::Start(start, hover), + None => HoverState::None, + }; + } + } + } + + #[allow(clippy::too_many_arguments)] // TODO: Pending review in #587 + fn set_tooltip( + &mut self, + tooltip: &ItemTooltip, + title_text: &str, + desc_text: &str, + title_col: Color, + img_id: Option, + image_dims: Option<(f64, f64)>, + src_id: widget::Id, + ui: &mut UiCell, + ) { + let tooltip_id = self.tooltip_id; + let mp_h = MOUSE_PAD_Y / self.logical_scale_factor; + + let tooltip = |transparency, mouse_pos: [f64; 2], ui: &mut UiCell| { + // Fill in text and the potential image beforehand to get an accurate size for + // spacing + let tooltip = tooltip + .clone() + .title(title_text) + .desc(desc_text) + .title_col(title_col) + .image(img_id) + .image_dims(image_dims); + + let [t_w, t_h] = tooltip.get_wh(ui).unwrap_or([0.0, 0.0]); + let [m_x, m_y] = [mouse_pos[0], mouse_pos[1]]; + let (w_w, w_h) = (ui.win_w, ui.win_h); + + // Determine position based on size and mouse position + // Flow to the top left of the mouse when there is space + let x = if (m_x + w_w / 2.0) > t_w { + m_x - t_w / 2.0 + } else { + m_x + t_w / 2.0 + }; + let y = if w_h - (m_y + w_h / 2.0) > t_h + mp_h { + m_y + mp_h + t_h / 2.0 + } else { + m_y - mp_h - t_h / 2.0 + }; + tooltip + .floating(true) + .transparency(transparency) + .x_y(x, y) + .set(tooltip_id, ui); + }; + + match self.state { + HoverState::Hovering(Hover(id, xy)) if id == src_id => tooltip(1.0, xy, ui), + HoverState::Fading(start, Hover(id, xy), _) if id == src_id => tooltip( + (0.1f32 - start.elapsed().as_millis() as f32 / self.hover_dur.as_millis() as f32) + .max(0.0), + xy, + ui, + ), + HoverState::Start(start, id) if id == src_id && start.elapsed() > self.hover_dur => { + let xy = ui.global_input().current.mouse.xy; + self.state = HoverState::Hovering(Hover(id, xy)); + tooltip(1.0, xy, ui); + }, + _ => (), + } + } +} + +pub struct ItemTooltipped<'a, W> { + inner: W, + tooltip_manager: &'a mut ItemTooltipManager, + title_text: &'a str, + desc_text: &'a str, + img_id: Option, + image_dims: Option<(f64, f64)>, + tooltip: &'a ItemTooltip<'a>, + title_col: Color, +} +impl<'a, W: Widget> ItemTooltipped<'a, W> { + pub fn tooltip_image(mut self, img_id: image::Id) -> Self { + self.img_id = Some(img_id); + self + } + + pub fn tooltip_image_dims(mut self, dims: (f64, f64)) -> Self { + self.image_dims = Some(dims); + self + } + + pub fn set(self, id: widget::Id, ui: &mut UiCell) -> W::Event { + let event = self.inner.set(id, ui); + self.tooltip_manager.set_tooltip( + self.tooltip, + self.title_text, + self.desc_text, + self.title_col, + self.img_id, + self.image_dims, + id, + ui, + ); + event + } +} + +pub trait ItemTooltipable { + // If `Tooltip` is expensive to construct accept a closure here instead. + fn with_item_tooltip<'a>( + self, + tooltip_manager: &'a mut ItemTooltipManager, + title_text: &'a str, + desc_text: &'a str, + tooltip: &'a ItemTooltip<'a>, + title_col: Color, + ) -> ItemTooltipped<'a, Self> + where + Self: std::marker::Sized; +} +impl ItemTooltipable for W { + fn with_item_tooltip<'a>( + self, + tooltip_manager: &'a mut ItemTooltipManager, + title_text: &'a str, + desc_text: &'a str, + tooltip: &'a ItemTooltip<'a>, + title_col: Color, + ) -> ItemTooltipped<'a, W> { + ItemTooltipped { + inner: self, + tooltip_manager, + title_text, + desc_text, + img_id: None, + image_dims: None, + tooltip, + title_col, + } + } +} + +/// Vertical spacing between elements of the tooltip +const V_PAD: f64 = 10.0; +/// Horizontal spacing between elements of the tooltip +const H_PAD: f64 = 10.0; +/// Default portion of inner width that goes to an image +const IMAGE_W_FRAC: f64 = 0.3; +/// Default width multiplied by the description font size +const DEFAULT_CHAR_W: f64 = 30.0; +/// Text vertical spacing factor to account for overhanging text +const TEXT_SPACE_FACTOR: f64 = 0.35; + +/// A widget for displaying tooltips +#[derive(Clone, WidgetCommon)] +pub struct ItemTooltip<'a> { + #[conrod(common_builder)] + common: widget::CommonBuilder, + title_text: &'a str, + desc_text: &'a str, + title_col: Color, + image: Option, + image_dims: Option<(f64, f64)>, + style: Style, + transparency: f32, + image_frame: ImageFrame, +} + +#[derive(Clone, Debug, Default, PartialEq, WidgetStyle)] +pub struct Style { + #[conrod(default = "Color::Rgba(1.0, 1.0, 1.0, 1.0)")] + pub color: Option, + title: widget::text::Style, + desc: widget::text::Style, + // add background imgs here +} + +widget_ids! { + struct Ids { + title, + desc, + image_frame, + image, + } +} + +pub struct State { + ids: Ids, +} + +impl<'a> ItemTooltip<'a> { + builder_methods! { + pub desc_text_color { style.desc.color = Some(Color) } + pub title_font_size { style.title.font_size = Some(FontSize) } + pub desc_font_size { style.desc.font_size = Some(FontSize) } + pub title_justify { style.title.justify = Some(text::Justify) } + pub desc_justify { style.desc.justify = Some(text::Justify) } + image { image = Option } + title { title_text = &'a str } + desc { desc_text = &'a str } + image_dims { image_dims = Option<(f64, f64)> } + transparency { transparency = f32 } + title_col { title_col = Color} + } + + pub fn new(image_frame: ImageFrame) -> Self { + ItemTooltip { + common: widget::CommonBuilder::default(), + style: Style::default(), + title_text: "", + desc_text: "", + transparency: 1.0, + image_frame, + image: None, + image_dims: None, + title_col: TEXT_COLOR, + } + } + + /// Align the text to the left of its bounding **Rect**'s *x* axis range. + //pub fn left_justify(self) -> Self { + // self.justify(text::Justify::Left) + //} + + /// Align the text to the middle of its bounding **Rect**'s *x* axis range. + //pub fn center_justify(self) -> Self { + // self.justify(text::Justify::Center) + //} + + /// Align the text to the right of its bounding **Rect**'s *x* axis range. + //pub fn right_justify(self) -> Self { + // self.justify(text::Justify::Right) + //} + + fn text_image_width(&self, total_width: f64) -> (f64, f64) { + let inner_width = (total_width - H_PAD * 2.0).max(0.0); + // Image defaults to 30% of the width + let image_w = if self.image.is_some() { + match self.image_dims { + Some((w, _)) => w, + None => (inner_width - H_PAD).max(0.0) * IMAGE_W_FRAC, + } + } else { + 0.0 + }; + // Text gets the remaining width + let text_w = (inner_width + - if self.image.is_some() { + image_w + H_PAD + } else { + 0.0 + }) + .max(0.0); + + (text_w, image_w) + } + + /// Specify the font used for displaying the text. + pub fn font_id(mut self, font_id: text::font::Id) -> Self { + self.style.title.font_id = Some(Some(font_id)); + self.style.desc.font_id = Some(Some(font_id)); + self + } +} + +impl<'a> Widget for ItemTooltip<'a> { + type Event = (); + type State = State; + type Style = Style; + + fn init_state(&self, id_gen: widget::id::Generator) -> Self::State { + State { + ids: Ids::new(id_gen), + } + } + + fn style(&self) -> Self::Style { self.style.clone() } + + fn update(self, args: widget::UpdateArgs) { + let widget::UpdateArgs { + id, + state, + rect, + style, + ui, + .. + } = args; + + // Widths + let (text_w, image_w) = self.text_image_width(rect.w()); + + // Apply transparency + let color = style.color(ui.theme()).alpha(self.transparency); + + // Background image frame + self.image_frame + .wh(rect.dim()) + .xy(rect.xy()) + .graphics_for(id) + .parent(id) + .color(color) + .set(state.ids.image_frame, ui); + + // Image + if let Some(img_id) = self.image { + widget::Image::new(img_id) + .w_h(image_w, self.image_dims.map_or(image_w, |(_, h)| h)) + .graphics_for(id) + .parent(id) + .color(Some(color)) + .top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD) + .set(state.ids.image, ui); + } + + // Spacing for overhanging text + let title_space = self.style.title.font_size(&ui.theme) as f64 * TEXT_SPACE_FACTOR; + + // Title of tooltip + if !self.title_text.is_empty() { + let title = widget::Text::new(self.title_text) + .w(text_w) + .graphics_for(id) + .parent(id) + .with_style(self.style.title) + // Apply transparency + .color(self.title_col); + + if self.image.is_some() { + title + .right_from(state.ids.image, H_PAD) + .align_top_of(state.ids.image) + } else { + title.top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD) + } + .set(state.ids.title, ui); + } + + // Description of tooltip + let desc = widget::Text::new(self.desc_text) + .w(text_w) + .graphics_for(id) + .parent(id) + // Apply transparency + .color(style.desc.color(ui.theme()).alpha(self.transparency)) + .with_style(self.style.desc); + + if !self.title_text.is_empty() { + desc.down_from(state.ids.title, V_PAD * 0.5 + title_space) + .align_left_of(state.ids.title) + } else if self.image.is_some() { + desc.right_from(state.ids.image, H_PAD) + .align_top_of(state.ids.image) + } else { + desc.top_left_with_margins_on(state.ids.image_frame, V_PAD, H_PAD) + } + .set(state.ids.desc, ui); + } + + /// Default width is based on the description font size unless the text is + /// small enough to fit on a single line + fn default_x_dimension(&self, ui: &Ui) -> Dimension { + let single_line_title_w = widget::Text::new(self.title_text) + .with_style(self.style.title) + .get_w(ui) + .unwrap_or(0.0); + let single_line_desc_w = widget::Text::new(self.desc_text) + .with_style(self.style.desc) + .get_w(ui) + .unwrap_or(0.0); + + let text_w = single_line_title_w.max(single_line_desc_w); + let inner_w = if self.image.is_some() { + match self.image_dims { + Some((w, _)) => w + text_w + H_PAD, + None => text_w / (1.0 - IMAGE_W_FRAC) + H_PAD, + } + } else { + text_w + }; + + let width = + inner_w.min(self.style.desc.font_size(&ui.theme) as f64 * DEFAULT_CHAR_W) + 2.0 * H_PAD; + Dimension::Absolute(width) + } + + fn default_y_dimension(&self, ui: &Ui) -> Dimension { + let (text_w, image_w) = self.text_image_width(self.get_w(ui).unwrap_or(0.0)); + let title_h = if self.title_text.is_empty() { + 0.0 + } else { + widget::Text::new(self.title_text) + .with_style(self.style.title) + .w(text_w) + .get_h(ui) + .unwrap_or(0.0) + + self.style.title.font_size(&ui.theme) as f64 * TEXT_SPACE_FACTOR + + 0.5 * V_PAD + }; + let desc_h = if self.desc_text.is_empty() { + 0.0 + } else { + widget::Text::new(self.desc_text) + .with_style(self.style.desc) + .w(text_w) + .get_h(ui) + .unwrap_or(0.0) + + self.style.desc.font_size(&ui.theme) as f64 * TEXT_SPACE_FACTOR + }; + // Image defaults to square shape + let image_h = self.image_dims.map_or(image_w, |(_, h)| h); + // Title height + desc height + padding/spacing + let height = (title_h + desc_h).max(image_h) + 2.0 * V_PAD; + Dimension::Absolute(height) + } +} + +impl<'a> Colorable for ItemTooltip<'a> { + builder_method!(color { style.color = Some(Color) }); +} diff --git a/world/src/layer/mod.rs b/world/src/layer/mod.rs index 24c38c3b6a..90e0a74a31 100644 --- a/world/src/layer/mod.rs +++ b/world/src/layer/mod.rs @@ -286,6 +286,10 @@ pub fn apply_caves_supplement<'a>( 0 => comp::biped_large::Species::Ogre, 1 => comp::biped_large::Species::Cyclops, 2 => comp::biped_large::Species::Wendigo, + 3 => match dynamic_rng.gen_range(0..2) { + 0 => comp::biped_large::Species::Blueoni, + _ => comp::biped_large::Species::Redoni, + } _ => comp::biped_large::Species::Troll, }; comp::biped_large::Body::random_with(dynamic_rng, &species).into() diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index dc083afe85..c6c3d2b712 100644 --- a/world/src/layer/wildlife.rs +++ b/world/src/layer/wildlife.rs @@ -71,10 +71,16 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..2) { + .with_body(match rng.gen_range(0..4) { 0 => { theropod::Body::random_with(rng, &theropod::Species::Snowraptor).into() }, + 1 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Snowleopard, + ) + .into(), + 2 => theropod::Body::random_with(rng, &theropod::Species::Yale).into(), _ => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Grolgar, @@ -160,7 +166,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..4) { + .with_body(match rng.gen_range(0..6) { 0 => { bird_medium::Body::random_with(rng, &bird_medium::Species::Eagle).into() }, @@ -170,6 +176,16 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( body_type: quadruped_small::BodyType::Female, } .into(), + 3 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Moose, + ) + .into(), + 4 => quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Dreadhorn, + ) + .into(), _ => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Tuskram, @@ -238,7 +254,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..12) { + .with_body(match rng.gen_range(0..13) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Deer, @@ -290,6 +306,10 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( &quadruped_medium::Species::Cattle, ) .into(), + 11 => { + quadruped_small::Body::random_with(rng, &quadruped_small::Species::Goat) + .into() + }, _ => bird_medium::Body::random_with(rng, &bird_medium::Species::Chicken) .into(), }) @@ -309,15 +329,15 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..13) { + .with_body(match rng.gen_range(0..12) { 0 => quadruped_small::Body { species: quadruped_small::Species::Fox, body_type: quadruped_small::BodyType::Male, } .into(), - 1 => quadruped_small::Body::random_with( + 1 => quadruped_medium::Body::random_with( rng, - &quadruped_small::Species::Quokka, + &quadruped_medium::Species::Donkey, ) .into(), 2 => { @@ -360,11 +380,6 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( &quadruped_small::Species::Truffler, ) .into(), - 11 => quadruped_medium::Body::random_with( - rng, - &quadruped_medium::Species::Donkey, - ) - .into(), _ => quadruped_small::Body::random_with( rng, &quadruped_small::Species::Batfox, @@ -478,11 +493,13 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..2) { + .with_body(match rng.gen_range(0..3) { 0 => { quadruped_low::Body::random_with(rng, &quadruped_low::Species::Maneater) .into() }, + 1 => quadruped_low::Body::random_with(rng, &quadruped_low::Species::Asp) + .into(), _ => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Tiger, @@ -494,7 +511,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( group_size: 1..2, is_underwater: false, get_density: |c, _col| { - close(c.temp, CONFIG.tropical_temp + 0.1, 0.4) + close(c.temp, CONFIG.tropical_temp + 0.1, 0.3) * close(c.humidity, CONFIG.jungle_hum, 0.3) * BASE_DENSITY * 3.0 @@ -522,17 +539,17 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( group_size: 1..2, is_underwater: false, get_density: |c, _col| { - close(c.temp, CONFIG.tropical_temp + 0.1, 0.4) + close(c.temp, CONFIG.tropical_temp + 0.1, 0.3) * close(c.humidity, CONFIG.jungle_hum, 0.3) * BASE_DENSITY - * 1.0 + * 0.8 }, }, // Jungle solitary wild Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..4) { + .with_body(match rng.gen_range(0..5) { 0 => bird_medium::Body::random_with(rng, &bird_medium::Species::Parrot) .into(), 1 => { @@ -541,6 +558,11 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( }, 2 => bird_medium::Body::random_with(rng, &bird_medium::Species::Cockatrice) .into(), + 3 => quadruped_small::Body::random_with( + rng, + &quadruped_small::Species::Quokka, + ) + .into(), _ => { quadruped_low::Body::random_with(rng, &quadruped_low::Species::Tortoise) .into() @@ -551,7 +573,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( group_size: 1..2, is_underwater: false, get_density: |c, _col| { - close(c.temp, CONFIG.tropical_temp, 0.5) + close(c.temp, CONFIG.tropical_temp, 0.4) * close(c.humidity, CONFIG.jungle_hum, 0.3) * BASE_DENSITY * 8.0 @@ -669,15 +691,13 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..4) { + .with_body(match rng.gen_range(0..3) { 0 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Bonerattler, ) .into(), - 1 => quadruped_low::Body::random_with(rng, &quadruped_low::Species::Asp) - .into(), - 2 => { + 1 => { theropod::Body::random_with(rng, &theropod::Species::Sandraptor).into() }, _ => quadruped_low::Body::random_with( @@ -701,12 +721,13 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..2) { + .with_body(match rng.gen_range(0..3) { 0 => quadruped_low::Body::random_with( rng, &quadruped_low::Species::Lavadrake, ) .into(), + 1 => theropod::Body::random_with(rng, &theropod::Species::Ntouka).into(), _ => theropod::Body::random_with(rng, &theropod::Species::Archaeos).into(), }) .with_alignment(Alignment::Enemy) @@ -717,7 +738,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( close(c.temp, CONFIG.desert_temp + 0.2, 0.3) * close(c.humidity, CONFIG.desert_hum, 0.5) * BASE_DENSITY - * 0.2 + * 0.15 }, }, // Desert river solitary enemy @@ -806,7 +827,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( close(c.temp, CONFIG.desert_temp + 0.2, 0.3) * BASE_DENSITY * 5.0 }, }, - // Underwater + // Underwater temperate Entry { make_entity: |pos, rng| { EntityInfo::at(pos) @@ -827,6 +848,22 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( close(c.temp, CONFIG.temperate_temp, 1.0) * col.tree_density * BASE_DENSITY * 5.0 }, }, + // Underwater taiga + Entry { + make_entity: |pos, rng| { + EntityInfo::at(pos) + .with_body( + quadruped_low::Body::random_with(rng, &quadruped_low::Species::Crocodile) + .into(), + ) + .with_alignment(Alignment::Enemy) + }, + group_size: 1..3, + is_underwater: false, + get_density: |c, col| { + close(c.temp, CONFIG.snow_temp, 0.15) * col.tree_density * BASE_DENSITY * 5.0 + }, + }, ]; for y in 0..vol.size_xy().y as i32 { diff --git a/world/src/site/settlement/mod.rs b/world/src/site/settlement/mod.rs index 4cd1b10e42..2cd8985cc3 100644 --- a/world/src/site/settlement/mod.rs +++ b/world/src/site/settlement/mod.rs @@ -902,9 +902,12 @@ impl Settlement { object::Body::TrainingDummy.into() }, 0 => { - let species = match dynamic_rng.gen_range(0..3) { + let species = match dynamic_rng.gen_range(0..6) { 0 => quadruped_small::Species::Pig, 1 => quadruped_small::Species::Sheep, + 2 => quadruped_small::Species::Goat, + 3 => quadruped_small::Species::Dog, + 4 => quadruped_small::Species::Goat, _ => quadruped_small::Species::Cat, }; is_human = false;