diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e9eb6f9a8..ac65bf0246 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fullscreen modes now show two options (exclusive and borderless) - Added banlist and `/ban`, `/unban`, and `/kick` commands for admins - A new dungeon boss (venture there and discover it yourself) +- Adaptive stride setup for more dynamic run behavior +- Theropod body +- Several new animals ### Changed diff --git a/assets/voxygen/voxel/npc/gecko/male/foot_bl.vox b/assets/voxygen/voxel/npc/gecko/male/foot_bl.vox index 7c33087036..52091c6ae9 100644 --- a/assets/voxygen/voxel/npc/gecko/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/gecko/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1f3cba80c04f52cd2d80480ccf54fc8b337c9708f27829f507786c8dc38a5b85 +oid sha256:f74d8f8c4c1d72a25001d915886250bf2a3b09d62c77f100c175c2fcb2586390 size 1172 diff --git a/assets/voxygen/voxel/npc/gecko/male/foot_br.vox b/assets/voxygen/voxel/npc/gecko/male/foot_br.vox index a69038267d..273c32fae0 100644 --- a/assets/voxygen/voxel/npc/gecko/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/gecko/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:557b86d32a5c7be5430ca05b2361ab4b9019e1fd299df6f77e608ca19af30306 +oid sha256:29ef6ae688b07adbc87654fa0659947ca8d4833f4152b47eb2f4b8193467cecf size 1172 diff --git a/assets/voxygen/voxel/npc/odonto/male/neck.vox b/assets/voxygen/voxel/npc/odonto/male/neck.vox index 8d6aa069c1..b721f15bec 100644 --- a/assets/voxygen/voxel/npc/odonto/male/neck.vox +++ b/assets/voxygen/voxel/npc/odonto/male/neck.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ac66309a7940e44e4dd9c47cf982fd2b10ac0dcfad2d20a8602d2ff3b6d3cbfe -size 5624 +oid sha256:002997074d14c75867d5444d25a607cd4d2e5efb6cfff54ce579209c6ff9e08a +size 2024 diff --git a/assets/voxygen/voxel/theropod_central_manifest.ron b/assets/voxygen/voxel/theropod_central_manifest.ron index 07f30ec257..7228b47401 100644 --- a/assets/voxygen/voxel/theropod_central_manifest.ron +++ b/assets/voxygen/voxel/theropod_central_manifest.ron @@ -5,7 +5,7 @@ central: ("npc.archaeos.male.head"), ), jaw: ( - offset: (-5.5, 0.0, -3.0), + offset: (-5.5, -2.0, -3.0), central: ("npc.archaeos.male.jaw"), ), neck: ( @@ -35,7 +35,7 @@ central: ("npc.archaeos.male.head"), ), jaw: ( - offset: (-5.5, 0.0, -3.0), + offset: (-5.5, -2.0, -3.0), central: ("npc.archaeos.male.jaw"), ), neck: ( @@ -69,7 +69,7 @@ central: ("npc.odonto.male.jaw"), ), neck: ( - offset: (-5.5, 0.0, -6.5), + offset: (-3.5, 0.0, -6.5), central: ("npc.odonto.male.neck"), ), chest_front: ( @@ -99,7 +99,7 @@ central: ("npc.odonto.male.jaw"), ), neck: ( - offset: (-5.5, 0.0, -6.5), + offset: (-3.5, 0.0, -6.5), central: ("npc.odonto.male.neck"), ), chest_front: ( diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 8deb64be8a..d0cd1563f9 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -104,6 +104,8 @@ impl<'a> From<&'a Body> for Psyche { quadruped_medium::Species::Frostfang => 0.9, quadruped_medium::Species::Mouflon => 0.8, quadruped_medium::Species::Catoblepas => 0.8, + quadruped_medium::Species::Deer => 0.6, + quadruped_medium::Species::Hirdrasil => 0.7, _ => 1.0, }, Body::QuadrupedLow(quadruped_low) => match quadruped_low.species { diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 16435dc608..735470cdb9 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -238,6 +238,8 @@ impl Body { quadruped_medium::Species::Mouflon => 500, quadruped_medium::Species::Catoblepas => 1000, quadruped_medium::Species::Bonerattler => 400, + quadruped_medium::Species::Deer => 300, + quadruped_medium::Species::Hirdrasil => 500, _ => 400, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -305,6 +307,8 @@ impl Body { quadruped_medium::Species::Mouflon => 30, quadruped_medium::Species::Catoblepas => 50, quadruped_medium::Species::Bonerattler => 30, + quadruped_medium::Species::Deer => 30, + quadruped_medium::Species::Hirdrasil => 30, _ => 20, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -372,6 +376,8 @@ impl Body { quadruped_medium::Species::Mouflon => 7, quadruped_medium::Species::Catoblepas => 10, quadruped_medium::Species::Bonerattler => 10, + quadruped_medium::Species::Deer => 7, + quadruped_medium::Species::Hirdrasil => 10, _ => 6, }, Body::BirdMedium(bird_medium) => match bird_medium.species { @@ -438,6 +444,7 @@ impl Body { Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species { quadruped_small::Species::Dodarock => 30, quadruped_small::Species::Hyena => 40, + quadruped_small::Species::Porcupine => 30, _ => 20, }, Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species { @@ -447,6 +454,8 @@ impl Body { quadruped_medium::Species::Mouflon => 30, quadruped_medium::Species::Catoblepas => 20, quadruped_medium::Species::Bonerattler => 50, + quadruped_medium::Species::Deer => 30, + quadruped_medium::Species::Hirdrasil => 50, _ => 40, }, Body::BirdMedium(bird_medium) => match bird_medium.species { diff --git a/voxygen/src/anim/src/quadruped_medium/feed.rs b/voxygen/src/anim/src/quadruped_medium/feed.rs index 4788b37b62..1fe7624adf 100644 --- a/voxygen/src/anim/src/quadruped_medium/feed.rs +++ b/voxygen/src/anim/src/quadruped_medium/feed.rs @@ -79,7 +79,7 @@ impl Animation for FeedAnimation { next.jaw.position = Vec3::new( 0.0, skeleton_attr.jaw.0 - slower * 0.12, - skeleton_attr.jaw.1 + slow * 0.2 + 0.5, + skeleton_attr.jaw.1 + slow * 0.2, ); next.jaw.orientation = Quaternion::rotation_x((fast * 0.18 + faster * 0.26).min(0.0)); next.jaw.scale = Vec3::one() * 1.02; diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index 3285ba2bcb..15c56e8993 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -71,7 +71,7 @@ impl Animation for IdleAnimation { next.jaw.position = Vec3::new( 0.0, skeleton_attr.jaw.0 - slower * 0.12, - skeleton_attr.jaw.1 + slow * 0.2 + 0.5, + skeleton_attr.jaw.1 + slow * 0.2, ); next.jaw.orientation = Quaternion::rotation_x(slow * 0.05 - 0.08); next.jaw.scale = Vec3::one() * 1.02; diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 5212b1377a..f4a9162d64 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -167,23 +167,23 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Hirdrasil, _) => (-1.0, 0.5), }, jaw: match (body.species, body.body_type) { - (Grolgar, _) => (7.0, 1.5), + (Grolgar, _) => (7.0, 2.0), (Saber, _) => (2.5, -2.0), - (Tuskram, _) => (5.5, -4.0), - (Lion, _) => (3.5, -4.5), - (Tarasque, _) => (9.0, -10.0), - (Tiger, _) => (3.5, -4.0), - (Wolf, _) => (5.0, -3.0), - (Frostfang, _) => (4.0, -3.0), - (Mouflon, _) => (6.0, 0.5), - (Catoblepas, _) => (1.0, -4.0), - (Bonerattler, _) => (3.0, -3.0), - (Deer, _) => (3.5, 2.0), - (Hirdrasil, _) => (2.5, 2.5), + (Tuskram, _) => (5.5, -3.5), + (Lion, _) => (3.5, -4.0), + (Tarasque, _) => (9.0, -9.5), + (Tiger, _) => (3.0, -3.5), + (Wolf, _) => (5.0, -2.5), + (Frostfang, _) => (4.0, -2.5), + (Mouflon, _) => (6.0, 1.0), + (Catoblepas, _) => (1.0, -3.5), + (Bonerattler, _) => (3.0, -2.5), + (Deer, _) => (3.5, 2.5), + (Hirdrasil, _) => (2.5, 3.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), - (Saber, _) => (-11.0, 1.0), + (Saber, _) => (-11.0, 0.0), (Tuskram, _) => (-9.0, 2.0), (Lion, _) => (-11.0, 1.0), (Tarasque, _) => (-11.0, 0.0), @@ -191,21 +191,21 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Wolf, _) => (-11.0, 0.0), (Frostfang, _) => (-7.0, -3.5), (Mouflon, _) => (-10.5, 3.0), - (Catoblepas, _) => (-8.5, -2.0), + (Catoblepas, _) => (-8.0, -2.0), (Bonerattler, _) => (-10.0, 1.5), (Deer, _) => (-8.5, 0.5), (Hirdrasil, _) => (-11.0, 2.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), - (Saber, _) => (14.0, 14.0), + (Saber, _) => (14.0, 13.0), (Tuskram, _) => (10.0, 14.5), (Lion, _) => (10.0, 12.5), - (Tarasque, _) => (11.5, 18.5), + (Tarasque, _) => (11.5, 17.5), (Tiger, _) => (10.0, 13.0), (Wolf, _) => (12.0, 13.0), (Frostfang, _) => (9.0, 11.5), - (Mouflon, _) => (11.0, 13.5), + (Mouflon, _) => (11.0, 14.0), (Catoblepas, _) => (7.5, 19.5), (Bonerattler, _) => (6.0, 12.5), (Deer, _) => (11.0, 13.5), @@ -243,7 +243,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (7.5, -5.5, -1.0), - (Saber, _) => (7.0, -4.0, -3.5), + (Saber, _) => (7.0, -4.0, -2.5), (Tuskram, _) => (6.0, -6.5, -4.0), (Lion, _) => (6.5, -6.5, -1.5), (Tarasque, _) => (7.0, -8.0, -6.0), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index e4e4d2ca4a..da9b089bc0 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -27,10 +27,10 @@ impl Animation for RunAnimation { //let increasefreqtest = (((1.0/speed)*3.0).round()).min(5.0); let lab = 0.72; //0.72 let amplitude = (speed / 24.0).max(0.25); - let amplitude2 = (speed * 1.4 / 24.0).max(0.6); - let amplitude3 = (speed / 24.0).max(0.35); + let amplitude2 = (speed * 1.4 / 24.0).powf(0.5).max(0.6); + let amplitude3 = (speed / 24.0).powf(0.5).max(0.35); let speedmult = skeleton_attr.tempo; - let canceler = speed / 24.0; + let canceler = (speed / 24.0).powf(0.5); let short = (((1.0) / (0.72 + 0.28 diff --git a/voxygen/src/anim/src/quadruped_small/mod.rs b/voxygen/src/anim/src/quadruped_small/mod.rs index ed9e73cef4..2d7167db56 100644 --- a/voxygen/src/anim/src/quadruped_small/mod.rs +++ b/voxygen/src/anim/src/quadruped_small/mod.rs @@ -142,7 +142,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Frog, _) => (-2.0, 4.5), (Rat, _) => (6.0, 5.0), (Axolotl, _) => (3.0, 5.0), - (Gecko, _) => (7.5, 3.0), + (Gecko, _) => (7.5, 4.0), (Turtle, _) => (1.0, 6.0), (Squirrel, _) => (4.0, 5.0), (Fungome, _) => (4.0, 4.0), @@ -168,7 +168,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Frog, _) => (4.5, 6.5, 0.0), (Rat, _) => (5.0, 2.5, -1.0), (Axolotl, _) => (2.0, 2.0, -2.0), - (Gecko, _) => (2.0, 4.0, 0.0), + (Gecko, _) => (2.0, 4.0, -0.5), (Turtle, _) => (5.0, 4.0, -2.0), (Squirrel, _) => (3.5, 3.0, -1.0), (Fungome, _) => (3.0, 2.0, -1.0), @@ -194,7 +194,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Frog, _) => (5.0, -3.5, 0.0), (Rat, _) => (5.0, -2.0, 1.0), (Axolotl, _) => (2.0, -3.0, -2.0), - (Gecko, _) => (1.5, -1.0, 0.0), + (Gecko, _) => (1.5, -2.0, -0.5), (Turtle, _) => (5.5, -2.5, -2.0), (Squirrel, _) => (3.5, -3.0, 0.0), (Fungome, _) => (3.0, -3.5, -1.0), @@ -250,7 +250,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Turtle, _) => (0.9), (Squirrel, _) => (0.7), (Fungome, _) => (0.9), - (Porcupine, _) => (1.0), + (Porcupine, _) => (0.8), (Beaver, _) => (1.0), }, tempo: match (body.species, body.body_type) { @@ -350,7 +350,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Frog, _) => (2.5), (Rat, _) => (1.0), (Axolotl, _) => (0.8), - (Gecko, _) => (1.0), + (Gecko, _) => (0.6), (Turtle, _) => (0.7), (Squirrel, _) => (1.0), (Fungome, _) => (0.8), @@ -376,7 +376,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Frog, _) => (0.7), (Rat, _) => (1.0), (Axolotl, _) => (0.8), - (Gecko, _) => (1.0), + (Gecko, _) => (0.8), (Turtle, _) => (0.7), (Squirrel, _) => (1.0), (Fungome, _) => (0.7), diff --git a/voxygen/src/anim/src/theropod/mod.rs b/voxygen/src/anim/src/theropod/mod.rs index 459661de77..d86d8b73cb 100644 --- a/voxygen/src/anim/src/theropod/mod.rs +++ b/voxygen/src/anim/src/theropod/mod.rs @@ -116,7 +116,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { Self { head: match (body.species, body.body_type) { (Archaeos, _) => (8.0, 4.0), - (Odonto, _) => (6.0, 5.0), + (Odonto, _) => (2.0, 2.0), }, jaw: match (body.species, body.body_type) { (Archaeos, _) => (1.0, -7.0), @@ -124,7 +124,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { }, neck: match (body.species, body.body_type) { (Archaeos, _) => (4.5, -2.0), - (Odonto, _) => (3.0, -3.0), + (Odonto, _) => (4.0, 0.0), }, chest_front: match (body.species, body.body_type) { (Archaeos, _) => (0.0, 20.0), diff --git a/world/src/lib.rs b/world/src/lib.rs index 30b2d720a2..823dcdf1d6 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -244,6 +244,8 @@ impl World { quadruped_medium::Species::Catoblepas => is_hostile = false, quadruped_medium::Species::Mouflon => is_hostile = false, quadruped_medium::Species::Tuskram => is_hostile = false, + quadruped_medium::Species::Deer => is_hostile = false, + quadruped_medium::Species::Hirdrasil => is_hostile = false, _ => is_hostile = true, } },