diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index eae84a9d61..11574fae07 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1033,7 +1033,7 @@ (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2, ), Armor(Chest("Rugged")): VoxTrans( - "voxel.armor.rugged.pants", + "voxel.armor.rugged.chest", (0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2, ), Armor(Chest("WorkerPurpBrown")): VoxTrans( diff --git a/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox b/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox index 434e3189e9..0387388ab2 100644 --- a/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox +++ b/assets/voxygen/voxel/figure/hair/dwarf/female-3.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6e66db107ba7dcb1c73defdef7a23e9e2355e0a1f2b233c7e40611719dc484b5 -size 2924 +oid sha256:2d518d392b68ab51a2f479f389dbfc1d1d7702e8644bb6053fcef41690e066d2 +size 267 diff --git a/assets/voxygen/voxel/glider/glider_cultists.vox b/assets/voxygen/voxel/glider/glider_cultists.vox index ee3c25d6ec..f8d13a6080 100644 --- a/assets/voxygen/voxel/glider/glider_cultists.vox +++ b/assets/voxygen/voxel/glider/glider_cultists.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:547fbb34162015161411a78ae94c4b863e95ee25adfd4d085b6edb0d60a412b5 +oid sha256:88540f687e06db70e617d19e969e4fd8903aaec801752201f7abb4bce393cdd5 size 14960 diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index a56ea27528..068942a11e 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -416,7 +416,7 @@ impl Body { quadruped_low::Species::Rocksnapper => 1000, quadruped_low::Species::Pangolin => 80, quadruped_low::Species::Maneater => 400, - quadruped_low::Species::Sandshark => 600, + quadruped_low::Species::Sandshark => 800, quadruped_low::Species::Hakulaq => 400, quadruped_low::Species::Lavadrake => 900, quadruped_low::Species::Deadwood => 600, diff --git a/voxygen/anim/src/quadruped_medium/mod.rs b/voxygen/anim/src/quadruped_medium/mod.rs index 2a2c6ea2a2..abff18e3c9 100644 --- a/voxygen/anim/src/quadruped_medium/mod.rs +++ b/voxygen/anim/src/quadruped_medium/mod.rs @@ -523,13 +523,13 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Donkey, _) => (1.2), (Horse, _) => (1.42), (Zebra, _) => (1.3), - (Cattle, _) => (1.7), - (Highland, _) => (1.7), + (Cattle, _) => (1.5), + (Highland, _) => (1.6), (Bear, _) => (1.7), (Yak, _) => (1.7), (Camel, _) => (1.42), (Dreadhorn, _) => (2.0), - (Moose, _) => (1.1), + (Moose, _) => (1.2), (Snowleopard, _) => (1.2), _ => (1.0), }, diff --git a/voxygen/anim/src/quadruped_small/mod.rs b/voxygen/anim/src/quadruped_small/mod.rs index 31bbfbbb72..33d66cefc4 100644 --- a/voxygen/anim/src/quadruped_small/mod.rs +++ b/voxygen/anim/src/quadruped_small/mod.rs @@ -161,7 +161,7 @@ impl<'a> From<&'a Body> for SkeletonAttr { (Beaver, _) => (2.0, 6.0), (Hare, Male) => (-2.0, 7.0), (Hare, Female) => (-2.0, 6.0), - (Dog, _) => (-2.0, 9.5), + (Dog, _) => (-2.0, 8.5), (Goat, _) => (2.0, 7.5), }, feet_f: match (body.species, body.body_type) { diff --git a/voxygen/anim/src/quadruped_small/run.rs b/voxygen/anim/src/quadruped_small/run.rs index 85ff64aef3..348146625b 100644 --- a/voxygen/anim/src/quadruped_small/run.rs +++ b/voxygen/anim/src/quadruped_small/run.rs @@ -17,25 +17,29 @@ impl Animation for RunAnimation { fn update_skeleton_inner( skeleton: &Self::Skeleton, (velocity, orientation, last_ori, _global_time, avg_vel, acc_vel): Self::Dependency, - _anim_time: f32, + anim_time: f32, _rate: &mut f32, s_a: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab: f32 = 0.8; //6 + let lab: f32 = 0.42; let speed = (Vec2::::from(velocity).magnitude()).min(12.0); let speednorm = (speed / 12.0).powf(0.4); + // acc_vel and anim_time mix to make sure phase lenght isn't starting at + // +infinite + let mixed_vel = acc_vel + anim_time * 12.0; + let speedmult = s_a.tempo; - let short = (acc_vel * lab * speedmult + PI * 1.0).sin() * speednorm; - let shortalt = (acc_vel * lab * speedmult + PI * 0.5).sin() * speednorm; + let short = (mixed_vel * lab * speedmult + PI * 1.0).sin() * speednorm; + let shortalt = (mixed_vel * lab * speedmult + PI * 0.5).sin() * speednorm; - let footvert = (acc_vel * lab * speedmult + PI * 0.0).sin() * speednorm; - let footvertt = (acc_vel * lab * speedmult + PI * 0.4).sin() * speednorm; + let footvert = (mixed_vel * lab * speedmult + PI * 0.0).sin() * speednorm; + let footvertt = (mixed_vel * lab * speedmult + PI * 0.4).sin() * speednorm; - let footvertf = (acc_vel * lab * speedmult + PI * 0.3).sin() * speednorm; - let footverttf = (acc_vel * lab * speedmult + PI * 0.7).sin() * speednorm; + let footvertf = (mixed_vel * lab * speedmult + PI * 0.3).sin() * speednorm; + let footverttf = (mixed_vel * lab * speedmult + PI * 0.7).sin() * speednorm; let ori: Vec2 = Vec2::from(orientation); let last_ori = Vec2::from(last_ori); diff --git a/world/src/layer/wildlife.rs b/world/src/layer/wildlife.rs index 0516bfcbb6..923a84949b 100644 --- a/world/src/layer/wildlife.rs +++ b/world/src/layer/wildlife.rs @@ -91,7 +91,9 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( }, group_size: 1..2, is_underwater: false, - get_density: |c, _col| close(c.temp, CONFIG.snow_temp, 0.3) * BASE_DENSITY * 1.0, + get_density: |c, col| { + close(c.temp, CONFIG.snow_temp, 0.3) * col.tree_density * BASE_DENSITY * 1.4 + }, }, // Tundra rare solitary ennemies Entry { @@ -106,7 +108,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( is_underwater: false, get_density: |c, _col| close(c.temp, CONFIG.snow_temp, 0.15) * BASE_DENSITY * 0.5, }, - // Tundra rare solitary ennemies + // Tundra rarer solitary ennemies Entry { make_entity: |pos, rng| { EntityInfo::at(pos) @@ -139,7 +141,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..3) { + .with_body(match rng.gen_range(0..2) { 0 => biped_large::Body::random_with(rng, &biped_large::Species::Wendigo) .into(), _ => quadruped_medium::Body::random_with( @@ -153,7 +155,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( group_size: 1..2, is_underwater: false, get_density: |c, col| { - close(c.temp, CONFIG.snow_temp + 0.2, 0.2) * col.tree_density * BASE_DENSITY * 0.2 + close(c.temp, CONFIG.snow_temp + 0.2, 0.2) * col.tree_density * BASE_DENSITY * 0.4 }, }, // Taiga pack ennemies @@ -203,7 +205,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..5) { + .with_body(match rng.gen_range(0..6) { 0 => { bird_medium::Body::random_with(rng, &bird_medium::Species::Eagle).into() }, @@ -218,6 +220,13 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( &quadruped_medium::Species::Moose, ) .into(), + 4 => { + quadruped_small::Body { + species: quadruped_small::Species::Hare, + body_type: quadruped_small::BodyType::Female, + } + } + .into(), _ => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Tuskram, @@ -273,7 +282,7 @@ 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_medium::Body::random_with( rng, &quadruped_medium::Species::Deer, @@ -311,21 +320,17 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( &quadruped_small::Species::Squirrel, ) .into(), - 8 => { - quadruped_small::Body::random_with(rng, &quadruped_small::Species::Hare) - .into() - }, - 9 => quadruped_medium::Body::random_with( + 8 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Horse, ) .into(), - 10 => quadruped_medium::Body::random_with( + 9 => quadruped_medium::Body::random_with( rng, &quadruped_medium::Species::Cattle, ) .into(), - 11 => { + 10 => { quadruped_small::Body::random_with(rng, &quadruped_small::Species::Goat) .into() }, @@ -339,7 +344,6 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( get_density: |c, _col| { close(c.temp, CONFIG.temperate_temp + 0.1, 0.6) * close(c.humidity, CONFIG.forest_hum, 0.6) - //* col.tree_density * BASE_DENSITY * 4.0 }, @@ -468,6 +472,30 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( } }, }, + // Temperate rare river ennemies + Entry { + make_entity: |pos, rng| { + EntityInfo::at(pos) + .with_body( + quadruped_medium::Body::random_with( + rng, + &quadruped_medium::Species::Kelpie, + ) + .into(), + ) + .with_alignment(Alignment::Wild) + }, + group_size: 1..2, + is_underwater: false, + get_density: |_c, col| { + close(col.temp, CONFIG.temperate_temp, 0.6) + * if col.water_dist.map(|d| d < 10.0).unwrap_or(false) { + 0.00005 + } else { + 0.0 + } + }, + }, // Temperate river ennemies Entry { make_entity: |pos, rng| { @@ -733,7 +761,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 - * 1.5 + * 1.3 }, }, // Desert rare solitary enemies @@ -807,7 +835,7 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( Entry { make_entity: |pos, rng| { EntityInfo::at(pos) - .with_body(match rng.gen_range(0..6) { + .with_body(match rng.gen_range(0..7) { 0 => quadruped_small::Body::random_with( rng, &quadruped_small::Species::Holladon, @@ -832,6 +860,11 @@ pub fn apply_wildlife_supplement<'a, R: Rng>( &quadruped_small::Species::Porcupine, ) .into(), + 5 => quadruped_small::Body { + species: quadruped_small::Species::Hare, + body_type: quadruped_small::BodyType::Male, + } + .into(), _ => quadruped_small::Body::random_with( rng, &quadruped_small::Species::Gecko,