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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,7 +3,8 @@ ItemDef(
description: "Strips of leather are wrapped around the handle.",
kind: Tool(
(
kind: Bow,
kind: Bow,
hands: Two,
stats: (
equip_time_millis: 0,
power: 0.7,
@ -13,4 +14,5 @@ ItemDef(
)
),
quality: Moderate,
tags: [],
)

View File

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

View File

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

View File

@ -3,7 +3,8 @@ ItemDef(
description: "Strips of leather are wrapped around the handle.",
kind: Tool(
(
kind: Bow,
kind: Bow,
hands: Two,
stats: (
equip_time_millis: 0,
power: 0.3,
@ -13,4 +14,5 @@ ItemDef(
)
),
quality: Moderate,
tags: [],
)

View File

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

View File

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

View File

@ -3,7 +3,8 @@ ItemDef(
description: "Strips of leather are wrapped around the handle.",
kind: Tool(
(
kind: Bow,
kind: Bow,
hands: Two,
stats: (
equip_time_millis: 0,
power: 1.4,
@ -13,4 +14,5 @@ ItemDef(
)
),
quality: Moderate,
tags: [],
)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,9 @@
use crate::{
comp::{
biped_large, biped_small,
inventory::slot::EquipSlot,
item::{Hands, ItemKind, Tool, ToolKind},
biped_large, biped_small, quadruped_low, quadruped_medium,
quadruped_low, quadruped_medium,
skills::Skill,
theropod, Body, CharacterAbility, CharacterState, LoadoutManip, StateUpdate,
},
@ -74,7 +75,8 @@ impl Body {
biped_large::Species::Mindflayer => 90.0,
biped_large::Species::Minotaur => 90.0,
_ => 80.0,
}, Body::BirdMedium(_) => 80.0,
},
Body::BirdMedium(_) => 80.0,
Body::FishMedium(_) => 80.0,
Body::Dragon(_) => 250.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,
-4.0 + -s_a.grip / 2.0 + move2 * -5.0,
);
next.upper_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.upper_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 =
Quaternion::rotation_x(PI / 2.0 + move1 * -0.5 + move2 * 1.5)
* Quaternion::rotation_y(-0.2);

View File

@ -26,13 +26,14 @@ impl Animation for IdleAnimation {
let mut next = (*skeleton).clone();
let slow = (anim_time as f32 * 4.0).sin();
next.foot_l.scale = Vec3::one()*s_a.scaler / 11.0;
next.foot_r.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.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.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.main.position = Vec3::new(2.0, -3.0, -3.0);
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.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.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_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
}

View File

@ -89,9 +89,9 @@ impl Animation for RunAnimation {
.sin()
* 0.1,
);
next.chest.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.chest.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.head.position = Vec3::new(0.0, -1.0 + s_a.head.0, s_a.head.1 + short * 0.1);
next.head.orientation =
Quaternion::rotation_z(tilt * -2.5 + head_look.x * 0.2 - short * 0.02)
@ -101,7 +101,8 @@ impl Animation for RunAnimation {
0.0,
s_a.chest.0,
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)
* Quaternion::rotation_y(tilt * 1.6)
* Quaternion::rotation_x(shortalter * 0.035 + speednorm * -0.4 + (tilt.abs()));
@ -140,7 +141,8 @@ impl Animation for RunAnimation {
s_a.foot.2
+ (1.0 - sideabs) * (2.0 * speednorm + ((footvertl * -1.1 * speednorm).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(
(1.0 - sideabs) * (-0.2 * speednorm + foothoril * -0.9 * speednorm) + sideabs * -0.5,
) * Quaternion::rotation_y(
@ -155,7 +157,8 @@ impl Animation for RunAnimation {
s_a.foot.2
+ (1.0 - sideabs) * (2.0 * speednorm + ((footvertr * -1.1 * speednorm).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(
(1.0 - sideabs) * (-0.2 * speednorm + foothorir * -0.9 * speednorm) + sideabs * -0.5,
) * Quaternion::rotation_y(

View File

@ -54,7 +54,6 @@ impl Animation for ShootAnimation {
let speednorm = speed / 9.4;
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.orientation = Quaternion::rotation_x(0.45 * speednorm)
* Quaternion::rotation_y(fast * 0.07 * speednormcancel);
@ -62,7 +61,8 @@ impl Animation for ShootAnimation {
0.0,
s_a.chest.0,
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);

View File

@ -44,7 +44,6 @@ impl Animation for WieldAnimation {
let speednorm = speed / 9.4;
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.orientation = Quaternion::rotation_x(0.45 * speednorm)
* Quaternion::rotation_y(fast * 0.07 * speednormcancel);
@ -52,7 +51,8 @@ impl Animation for WieldAnimation {
0.0,
s_a.chest.0,
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);

View File

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

View File

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