rebase, yeti in dungeon

This commit is contained in:
jshipsey 2021-02-20 16:56:10 -05:00
parent e06ebf3507
commit 79ec9115f5
73 changed files with 269 additions and 101 deletions

View File

@ -32,30 +32,30 @@
Spear: ( Spear: (
primary: "common.abilities.spear.doublestrike", primary: "common.abilities.spear.doublestrike",
secondary: "common.abilities.spear.dash", secondary: "common.abilities.spear.dash",
skills: [], abilities: [],
), ),
HammerSimple: ( HammerSimple: (
primary: "common.abilities.hammersimple.doublestrike", primary: "common.abilities.hammersimple.doublestrike",
secondary: "common.abilities.hammersimple.doublestrike", secondary: "common.abilities.hammersimple.doublestrike",
skills: [], abilities: [],
), ),
SwordSimple: ( SwordSimple: (
primary: "common.abilities.swordsimple.doublestrike", primary: "common.abilities.swordsimple.doublestrike",
secondary: "common.abilities.swordsimple.dash", secondary: "common.abilities.swordsimple.dash",
skills: [ abilities: [
], ],
), ),
StaffSimple: ( StaffSimple: (
primary: "common.abilities.staffsimple.firebomb", primary: "common.abilities.staffsimple.firebomb",
secondary: "common.abilities.staffsimple.firebomb", secondary: "common.abilities.staffsimple.firebomb",
skills: [], abilities: [],
), ),
BowSimple: ( BowSimple: (
primary: "common.abilities.bowsimple.basic", primary: "common.abilities.bowsimple.basic",
secondary: "common.abilities.bowsimple.basic", secondary: "common.abilities.bowsimple.basic",
skills: [ abilities: [
], ],
), ),
Staff: ( Staff: (
@ -95,12 +95,12 @@
Unique(WendigoMagic): ( Unique(WendigoMagic): (
primary: "common.abilities.unique.wendigomagic.frostbomb", primary: "common.abilities.unique.wendigomagic.frostbomb",
secondary: "common.abilities.unique.wendigomagic.singlestrike", secondary: "common.abilities.unique.wendigomagic.singlestrike",
skills: [], abilities: [],
), ),
Unique(TidalClaws): ( Unique(TidalClaws): (
primary: "common.abilities.staff.flamethrower", primary: "common.abilities.staff.flamethrower",
secondary: "common.abilities.unique.wendigomagic.singlestrike", secondary: "common.abilities.unique.wendigomagic.singlestrike",
skills: [], abilities: [],
), ),
Unique(QuadMedQuick): ( Unique(QuadMedQuick): (
primary: "common.abilities.unique.quadmedquick.triplestrike", primary: "common.abilities.unique.quadmedquick.triplestrike",
@ -159,8 +159,8 @@
Unique(QuadLowBeam): ( Unique(QuadLowBeam): (
primary: "common.abilities.unique.quadlowbeam.healingbeam", primary: "common.abilities.unique.quadlowbeam.healingbeam",
secondary: "common.abilities.unique.quadlowbreathe.triplestrike", secondary: "common.abilities.unique.quadlowbreathe.triplestrike",
skills: [ abilities: [
"common.abilities.unique.quadlowbreathe.dash", (None, "common.abilities.unique.quadlowbreathe.dash"),
], ],
), ),
Unique(QuadSmallBasic): ( Unique(QuadSmallBasic): (

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: High, quality: High,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: High, quality: High,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -9,4 +9,5 @@ ItemDef(
), ),
)), )),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Bow, kind: Bow,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.7, power: 0.7,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Staff, kind: Staff,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.7, power: 0.7,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Spear, kind: Spear,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.7, power: 0.7,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Bow, kind: Bow,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.3, power: 0.3,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Staff, kind: Staff,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.3, power: 0.3,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Spear, kind: Spear,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.3, power: 0.3,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Bow, kind: Bow,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.4, power: 1.4,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Staff, kind: Staff,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.4, power: 1.4,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Spear, kind: Spear,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.4, power: 1.4,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Bow, kind: Bow,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.1, power: 1.1,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Staff, kind: Staff,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.7, power: 1.7,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Spear, kind: Spear,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.7, power: 1.7,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Bow, kind: Bow,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 0.3, power: 0.3,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Moderate, quality: Moderate,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Staff, kind: Staff,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.1, power: 1.1,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Spear, kind: Spear,
hands: Two,
stats: ( stats: (
equip_time_millis: 0, equip_time_millis: 0,
power: 1.1, power: 1.1,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: HammerSimple, kind: HammerSimple,
hands: Two,
stats: ( stats: (
equip_time_millis: 500, equip_time_millis: 500,
power: 1.00, power: 1.00,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -6,7 +6,7 @@ ItemDef(
kind: Unique(StoneGolemFist), kind: Unique(StoneGolemFist),
hands: Two, hands: Two,
stats: Direct(( stats: Direct((
equip_time_millis: 500, equip_time_millis: 1,
power: 1.00, power: 1.00,
poise_strength: 1.00, poise_strength: 1.00,
speed: 1.0 speed: 1.0

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Unique(TidalClaws), kind: Unique(TidalClaws),
hands: Two,
stats: ( stats: (
equip_time_millis: 500, equip_time_millis: 500,
power: 1.00, power: 1.00,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -4,6 +4,7 @@ ItemDef(
kind: Tool( kind: Tool(
( (
kind: Unique(WendigoMagic), kind: Unique(WendigoMagic),
hands: Two,
stats: ( stats: (
equip_time_millis: 500, equip_time_millis: 500,
power: 1.00, power: 1.00,
@ -13,4 +14,5 @@ ItemDef(
) )
), ),
quality: Low, quality: Low,
tags: [],
) )

View File

@ -1,8 +1,9 @@
use crate::{ use crate::{
comp::{ comp::{
biped_large, biped_small,
inventory::slot::EquipSlot, inventory::slot::EquipSlot,
item::{Hands, ItemKind, Tool, ToolKind}, item::{Hands, ItemKind, Tool, ToolKind},
biped_large, biped_small, quadruped_low, quadruped_medium, quadruped_low, quadruped_medium,
skills::Skill, skills::Skill,
theropod, Body, CharacterAbility, CharacterState, LoadoutManip, StateUpdate, theropod, Body, CharacterAbility, CharacterState, LoadoutManip, StateUpdate,
}, },
@ -74,7 +75,8 @@ impl Body {
biped_large::Species::Mindflayer => 90.0, biped_large::Species::Mindflayer => 90.0,
biped_large::Species::Minotaur => 90.0, biped_large::Species::Minotaur => 90.0,
_ => 80.0, _ => 80.0,
}, Body::BirdMedium(_) => 80.0, },
Body::BirdMedium(_) => 80.0,
Body::FishMedium(_) => 80.0, Body::FishMedium(_) => 80.0,
Body::Dragon(_) => 250.0, Body::Dragon(_) => 250.0,
Body::BirdSmall(_) => 75.0, Body::BirdSmall(_) => 75.0,

View File

@ -95,10 +95,8 @@ impl Animation for AlphaAnimation {
5.0 + s_a.grip / 1.2 + move1 * -4.0 + move2 * 8.0, 5.0 + s_a.grip / 1.2 + move1 * -4.0 + move2 * 8.0,
-4.0 + -s_a.grip / 2.0 + move2 * -5.0, -4.0 + -s_a.grip / 2.0 + move2 * -5.0,
); );
next.upper_torso.orientation = next.upper_torso.orientation = Quaternion::rotation_z(move1 * 0.5 + move2 * -0.7);
Quaternion::rotation_z(move1 * 0.5 + move2 * -0.7); next.lower_torso.orientation = Quaternion::rotation_z(move1 * -0.5 + move2 * 0.7);
next.lower_torso.orientation =
Quaternion::rotation_z(move1 * -0.5 + move2 * 0.7);
next.control_l.orientation = next.control_l.orientation =
Quaternion::rotation_x(PI / 2.0 + move1 * -0.5 + move2 * 1.5) Quaternion::rotation_x(PI / 2.0 + move1 * -0.5 + move2 * 1.5)
* Quaternion::rotation_y(-0.2); * Quaternion::rotation_y(-0.2);

View File

@ -26,13 +26,14 @@ impl Animation for IdleAnimation {
let mut next = (*skeleton).clone(); let mut next = (*skeleton).clone();
let slow = (anim_time as f32 * 4.0).sin(); let slow = (anim_time as f32 * 4.0).sin();
next.foot_l.scale = Vec3::one()*s_a.scaler / 11.0; next.foot_l.scale = Vec3::one() * s_a.scaler / 11.0;
next.foot_r.scale = Vec3::one()*s_a.scaler / 11.0; next.foot_r.scale = Vec3::one() * s_a.scaler / 11.0;
next.chest.scale = Vec3::one()*s_a.scaler / 11.0; next.chest.scale = Vec3::one() * s_a.scaler / 11.0;
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + slow * -0.1); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + slow * -0.1);
next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1 + slow * 0.3)*s_a.scaler / 11.0; next.chest.position =
Vec3::new(0.0, s_a.chest.0, s_a.chest.1 + slow * 0.3) * s_a.scaler / 11.0;
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1); next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);
next.main.position = Vec3::new(2.0, -3.0, -3.0); next.main.position = Vec3::new(2.0, -3.0, -3.0);
next.main.orientation = Quaternion::rotation_y(-0.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(-0.5) * Quaternion::rotation_z(1.57);
@ -40,8 +41,8 @@ impl Animation for IdleAnimation {
next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1); next.tail.position = Vec3::new(0.0, s_a.tail.0, s_a.tail.1);
next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2 + slow * -0.1); next.hand_l.position = Vec3::new(-s_a.hand.0, s_a.hand.1, s_a.hand.2 + slow * -0.1);
next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2 + slow * -0.1); next.hand_r.position = Vec3::new(s_a.hand.0, s_a.hand.1, s_a.hand.2 + slow * -0.1);
next.foot_l.position = Vec3::new(-s_a.foot.0, s_a.foot.1, s_a.foot.2)*s_a.scaler / 11.0; next.foot_l.position = Vec3::new(-s_a.foot.0, s_a.foot.1, s_a.foot.2) * s_a.scaler / 11.0;
next.foot_r.position = Vec3::new(s_a.foot.0, s_a.foot.1, s_a.foot.2)*s_a.scaler / 11.0; next.foot_r.position = Vec3::new(s_a.foot.0, s_a.foot.1, s_a.foot.2) * s_a.scaler / 11.0;
next next
} }

View File

@ -89,9 +89,9 @@ impl Animation for RunAnimation {
.sin() .sin()
* 0.1, * 0.1,
); );
next.chest.scale = Vec3::one()*s_a.scaler / 11.0; next.chest.scale = Vec3::one() * s_a.scaler / 11.0;
next.foot_l.scale = Vec3::one()*s_a.scaler / 11.0; next.foot_l.scale = Vec3::one() * s_a.scaler / 11.0;
next.foot_r.scale = Vec3::one()*s_a.scaler / 11.0; next.foot_r.scale = Vec3::one() * s_a.scaler / 11.0;
next.head.position = Vec3::new(0.0, -1.0 + s_a.head.0, s_a.head.1 + short * 0.1); next.head.position = Vec3::new(0.0, -1.0 + s_a.head.0, s_a.head.1 + short * 0.1);
next.head.orientation = next.head.orientation =
Quaternion::rotation_z(tilt * -2.5 + head_look.x * 0.2 - short * 0.02) Quaternion::rotation_z(tilt * -2.5 + head_look.x * 0.2 - short * 0.02)
@ -101,7 +101,8 @@ impl Animation for RunAnimation {
0.0, 0.0,
s_a.chest.0, s_a.chest.0,
s_a.chest.1 + 1.0 * speednorm + shortalt * -0.8, s_a.chest.1 + 1.0 * speednorm + shortalt * -0.8,
)*s_a.scaler / 11.0; ) * s_a.scaler
/ 11.0;
next.chest.orientation = Quaternion::rotation_z(short * 0.06 + tilt * -0.6) next.chest.orientation = Quaternion::rotation_z(short * 0.06 + tilt * -0.6)
* Quaternion::rotation_y(tilt * 1.6) * Quaternion::rotation_y(tilt * 1.6)
* Quaternion::rotation_x(shortalter * 0.035 + speednorm * -0.4 + (tilt.abs())); * Quaternion::rotation_x(shortalter * 0.035 + speednorm * -0.4 + (tilt.abs()));
@ -140,7 +141,8 @@ impl Animation for RunAnimation {
s_a.foot.2 s_a.foot.2
+ (1.0 - sideabs) * (2.0 * speednorm + ((footvertl * -1.1 * speednorm).max(-1.0))) + (1.0 - sideabs) * (2.0 * speednorm + ((footvertl * -1.1 * speednorm).max(-1.0)))
+ side * ((footvertsl * 1.5).max(-1.0)), + side * ((footvertsl * 1.5).max(-1.0)),
)*s_a.scaler / 11.0; ) * s_a.scaler
/ 11.0;
next.foot_l.orientation = Quaternion::rotation_x( next.foot_l.orientation = Quaternion::rotation_x(
(1.0 - sideabs) * (-0.2 * speednorm + foothoril * -0.9 * speednorm) + sideabs * -0.5, (1.0 - sideabs) * (-0.2 * speednorm + foothoril * -0.9 * speednorm) + sideabs * -0.5,
) * Quaternion::rotation_y( ) * Quaternion::rotation_y(
@ -155,7 +157,8 @@ impl Animation for RunAnimation {
s_a.foot.2 s_a.foot.2
+ (1.0 - sideabs) * (2.0 * speednorm + ((footvertr * -1.1 * speednorm).max(-1.0))) + (1.0 - sideabs) * (2.0 * speednorm + ((footvertr * -1.1 * speednorm).max(-1.0)))
+ side * ((footvertsr * -1.5).max(-1.0)), + side * ((footvertsr * -1.5).max(-1.0)),
)*s_a.scaler / 11.0; ) * s_a.scaler
/ 11.0;
next.foot_r.orientation = Quaternion::rotation_x( next.foot_r.orientation = Quaternion::rotation_x(
(1.0 - sideabs) * (-0.2 * speednorm + foothorir * -0.9 * speednorm) + sideabs * -0.5, (1.0 - sideabs) * (-0.2 * speednorm + foothorir * -0.9 * speednorm) + sideabs * -0.5,
) * Quaternion::rotation_y( ) * Quaternion::rotation_y(

View File

@ -54,7 +54,6 @@ impl Animation for ShootAnimation {
let speednorm = speed / 9.4; let speednorm = speed / 9.4;
let speednormcancel = 1.0 - speednorm; let speednormcancel = 1.0 - speednorm;
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + fast * -0.1 * speednormcancel); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + fast * -0.1 * speednormcancel);
next.head.orientation = Quaternion::rotation_x(0.45 * speednorm) next.head.orientation = Quaternion::rotation_x(0.45 * speednorm)
* Quaternion::rotation_y(fast * 0.07 * speednormcancel); * Quaternion::rotation_y(fast * 0.07 * speednormcancel);
@ -62,7 +61,8 @@ impl Animation for ShootAnimation {
0.0, 0.0,
s_a.chest.0, s_a.chest.0,
s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5, s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5,
)*s_a.scaler / 11.0; ) * s_a.scaler
/ 11.0;
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1); next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);

View File

@ -44,7 +44,6 @@ impl Animation for WieldAnimation {
let speednorm = speed / 9.4; let speednorm = speed / 9.4;
let speednormcancel = 1.0 - speednorm; let speednormcancel = 1.0 - speednorm;
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + fast * -0.1 * speednormcancel); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + fast * -0.1 * speednormcancel);
next.head.orientation = Quaternion::rotation_x(0.45 * speednorm) next.head.orientation = Quaternion::rotation_x(0.45 * speednorm)
* Quaternion::rotation_y(fast * 0.07 * speednormcancel); * Quaternion::rotation_y(fast * 0.07 * speednormcancel);
@ -52,7 +51,8 @@ impl Animation for WieldAnimation {
0.0, 0.0,
s_a.chest.0, s_a.chest.0,
s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5, s_a.chest.1 + fastalt * 0.4 * speednormcancel + speednormcancel * -0.5,
)*s_a.scaler / 11.0; ) * s_a.scaler
/ 11.0;
next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1); next.pants.position = Vec3::new(0.0, s_a.pants.0, s_a.pants.1);

View File

@ -1516,7 +1516,6 @@ impl FigureMgr {
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
), ),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
@ -1534,7 +1533,6 @@ impl FigureMgr {
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
), ),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
@ -2050,7 +2048,6 @@ impl FigureMgr {
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
), ),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
@ -2067,7 +2064,6 @@ impl FigureMgr {
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
), ),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
@ -2580,7 +2576,13 @@ impl FigureMgr {
// Idle // Idle
(true, false, false) => anim::biped_small::IdleAnimation::update_skeleton( (true, false, false) => anim::biped_small::IdleAnimation::update_skeleton(
&BipedSmallSkeleton::default(), &BipedSmallSkeleton::default(),
(vel.0, ori, state.last_ori, time, state.avg_vel), (
vel.0,
ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time,
state.avg_vel,
),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
skeleton_attr, skeleton_attr,
@ -2590,8 +2592,8 @@ impl FigureMgr {
&BipedSmallSkeleton::default(), &BipedSmallSkeleton::default(),
( (
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2605,8 +2607,8 @@ impl FigureMgr {
&BipedSmallSkeleton::default(), &BipedSmallSkeleton::default(),
( (
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2620,8 +2622,8 @@ impl FigureMgr {
&BipedSmallSkeleton::default(), &BipedSmallSkeleton::default(),
( (
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2632,7 +2634,13 @@ impl FigureMgr {
), ),
_ => anim::biped_small::IdleAnimation::update_skeleton( _ => anim::biped_small::IdleAnimation::update_skeleton(
&BipedSmallSkeleton::default(), &BipedSmallSkeleton::default(),
(vel.0, ori, state.last_ori, time, state.avg_vel), (
vel.0,
ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time,
state.avg_vel,
),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
skeleton_attr, skeleton_attr,
@ -2646,8 +2654,8 @@ impl FigureMgr {
( (
active_tool_kind, active_tool_kind,
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2678,8 +2686,8 @@ impl FigureMgr {
&target_base, &target_base,
( (
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2709,8 +2717,8 @@ impl FigureMgr {
( (
active_tool_kind, active_tool_kind,
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2740,8 +2748,8 @@ impl FigureMgr {
( (
active_tool_kind, active_tool_kind,
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2782,8 +2790,8 @@ impl FigureMgr {
&target_base, &target_base,
( (
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -2798,8 +2806,8 @@ impl FigureMgr {
&target_base, &target_base,
( (
vel.0, vel.0,
ori, ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori, state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time, time,
state.avg_vel, state.avg_vel,
state.acc_vel, state.acc_vel,
@ -3732,7 +3740,13 @@ impl FigureMgr {
// In air // In air
(false, _, false) => anim::golem::RunAnimation::update_skeleton( (false, _, false) => anim::golem::RunAnimation::update_skeleton(
&GolemSkeleton::default(), &GolemSkeleton::default(),
(vel.0, ori, state.last_ori, time, state.acc_vel), (
vel.0,
ori * anim::vek::Vec3::<f32>::unit_y(),
state.last_ori * anim::vek::Vec3::<f32>::unit_y(),
time,
state.acc_vel,
),
state.state_time, state.state_time,
&mut state_animation_rate, &mut state_animation_rate,
skeleton_attr, skeleton_attr,

View File

@ -620,11 +620,26 @@ impl Floor {
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)) .with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_main_tool(comp::Item::new_from_asset_expect( .with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) { match dynamic_rng.gen_range(0..5) {
0 => "common.items.npc_weapons.biped_small.gnarling.wooden_spear", 0 => {
1 => "common.items.npc_weapons.biped_small.gnarling.wooden_spear", "common.items.npc_weapons.biped_small.gnarling.\
2 => "common.items.npc_weapons.biped_small.gnarling.wooden_spear", wooden_spear"
3 => "common.items.npc_weapons.biped_small.gnarling.gnoll_staff", },
_ => "common.items.npc_weapons.biped_small.gnarling.adlet_bow", 1 => {
"common.items.npc_weapons.biped_small.gnarling.\
wooden_spear"
},
2 => {
"common.items.npc_weapons.biped_small.gnarling.\
wooden_spear"
},
3 => {
"common.items.npc_weapons.biped_small.gnarling.\
gnoll_staff"
},
_ => {
"common.items.npc_weapons.biped_small.gnarling.\
adlet_bow"
},
}, },
)), )),
1 => entity 1 => entity
@ -642,10 +657,21 @@ impl Floor {
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)) .with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_main_tool(comp::Item::new_from_asset_expect( .with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) { match dynamic_rng.gen_range(0..5) {
0 => "common.items.npc_weapons.biped_small.adlet.wooden_spear", 0 => {
1 => "common.items.npc_weapons.biped_small.adlet.wooden_spear", "common.items.npc_weapons.biped_small.adlet.\
2 => "common.items.npc_weapons.biped_small.adlet.wooden_spear", wooden_spear"
3 => "common.items.npc_weapons.biped_small.adlet.gnoll_staff", },
1 => {
"common.items.npc_weapons.biped_small.adlet.\
wooden_spear"
},
2 => {
"common.items.npc_weapons.biped_small.adlet.\
wooden_spear"
},
3 => {
"common.items.npc_weapons.biped_small.adlet.gnoll_staff"
},
_ => "common.items.npc_weapons.biped_small.adlet.adlet_bow", _ => "common.items.npc_weapons.biped_small.adlet.adlet_bow",
}, },
)), )),
@ -663,14 +689,28 @@ impl Floor {
) )
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)) .with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_main_tool(comp::Item::new_from_asset_expect( .with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) { match dynamic_rng.gen_range(0..5) {
0 => "common.items.npc_weapons.biped_small.sahagin.wooden_spear", 0 => {
1 => "common.items.npc_weapons.biped_small.sahagin.wooden_spear", "common.items.npc_weapons.biped_small.sahagin.\
2 => "common.items.npc_weapons.biped_small.sahagin.wooden_spear", wooden_spear"
3 => "common.items.npc_weapons.biped_small.sahagin.gnoll_staff",
_ => "common.items.npc_weapons.biped_small.sahagin.adlet_bow",
}, },
)), 1 => {
"common.items.npc_weapons.biped_small.sahagin.\
wooden_spear"
},
2 => {
"common.items.npc_weapons.biped_small.sahagin.\
wooden_spear"
},
3 => {
"common.items.npc_weapons.biped_small.sahagin.\
gnoll_staff"
},
_ => {
"common.items.npc_weapons.biped_small.sahagin.adlet_bow"
},
},
)),
3 => entity 3 => entity
.with_body(comp::Body::BipedSmall( .with_body(comp::Body::BipedSmall(
comp::biped_small::Body::random_with( comp::biped_small::Body::random_with(
@ -686,11 +726,25 @@ impl Floor {
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)) .with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_main_tool(comp::Item::new_from_asset_expect( .with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) { match dynamic_rng.gen_range(0..5) {
0 => "common.items.npc_weapons.biped_small.haniwa.wooden_spear", 0 => {
1 => "common.items.npc_weapons.biped_small.haniwa.wooden_spear", "common.items.npc_weapons.biped_small.haniwa.\
2 => "common.items.npc_weapons.biped_small.haniwa.wooden_spear", wooden_spear"
3 => "common.items.npc_weapons.biped_small.haniwa.gnoll_staff", },
_ => "common.items.npc_weapons.biped_small.haniwa.adlet_bow", 1 => {
"common.items.npc_weapons.biped_small.haniwa.\
wooden_spear"
},
2 => {
"common.items.npc_weapons.biped_small.haniwa.\
wooden_spear"
},
3 => {
"common.items.npc_weapons.biped_small.haniwa.\
gnoll_staff"
},
_ => {
"common.items.npc_weapons.biped_small.haniwa.adlet_bow"
},
}, },
)), )),
4 => entity 4 => entity
@ -707,14 +761,29 @@ impl Floor {
) )
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)) .with_loot_drop(comp::Item::new_from_asset_expect(chosen))
.with_main_tool(comp::Item::new_from_asset_expect( .with_main_tool(comp::Item::new_from_asset_expect(
match dynamic_rng.gen_range(0..5) { match dynamic_rng.gen_range(0..5) {
0 => "common.items.npc_weapons.biped_small.myrmidon.wooden_spear", 0 => {
1 => "common.items.npc_weapons.biped_small.myrmidon.wooden_spear", "common.items.npc_weapons.biped_small.myrmidon.\
2 => "common.items.npc_weapons.biped_small.myrmidon.wooden_spear", wooden_spear"
3 => "common.items.npc_weapons.biped_small.myrmidon.gnoll_staff",
_ => "common.items.npc_weapons.biped_small.myrmidon.adlet_bow",
}, },
)), 1 => {
"common.items.npc_weapons.biped_small.myrmidon.\
wooden_spear"
},
2 => {
"common.items.npc_weapons.biped_small.myrmidon.\
wooden_spear"
},
3 => {
"common.items.npc_weapons.biped_small.myrmidon.\
gnoll_staff"
},
_ => {
"common.items.npc_weapons.biped_small.myrmidon.\
adlet_bow"
},
},
)),
5 => match dynamic_rng.gen_range(0..6) { 5 => match dynamic_rng.gen_range(0..6) {
0 => entity 0 => entity
.with_body(comp::Body::BipedSmall( .with_body(comp::Body::BipedSmall(
@ -838,13 +907,13 @@ impl Floor {
], ],
1 => vec![ 1 => vec![
EntityInfo::at(tile_wcenter.map(|e| e as f32)) EntityInfo::at(tile_wcenter.map(|e| e as f32))
.with_body(comp::Body::Theropod( .with_body(comp::Body::BipedLarge(
comp::theropod::Body::random_with( comp::biped_large::Body::random_with(
dynamic_rng, dynamic_rng,
&comp::theropod::Species::Odonto, &comp::biped_large::Species::Yeti,
), ),
)) ))
.with_name("Odonto".to_string()) .with_name("Yeti".to_string())
.with_loot_drop(comp::Item::new_from_asset_expect(chosen)), .with_loot_drop(comp::Item::new_from_asset_expect(chosen)),
], ],
2 => vec![ 2 => vec![