Yeeted from code files.

This commit is contained in:
Sam 2020-11-06 11:39:49 -06:00
parent 2000ba587e
commit a4046872b2
40 changed files with 262 additions and 271 deletions

View File

@ -2,7 +2,7 @@ pub mod armor;
pub mod tool; pub mod tool;
// Reexports // Reexports
pub use tool::{Hands, Tool, ToolKind}; pub use tool::{Hands, Tool, ToolKind, UniqueKind};
use crate::{ use crate::{
assets::{self, Asset, Error}, assets::{self, Asset, Error},

View File

@ -16,17 +16,17 @@ use std::time::Duration;
#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ToolKind { pub enum ToolKind {
Sword(String), Sword,
Axe(String), Axe,
Hammer(String), Hammer,
Bow(String), Bow,
Dagger(String), Dagger,
Staff(String), Staff,
Sceptre(String), Sceptre,
Shield(String), Shield,
NpcWeapon(String), Unique(UniqueKind),
Debug(String), Debug,
Farming(String), Farming,
/// This is an placeholder item, it is used by non-humanoid npcs to attack /// This is an placeholder item, it is used by non-humanoid npcs to attack
Empty, Empty,
} }
@ -34,17 +34,17 @@ pub enum ToolKind {
impl ToolKind { impl ToolKind {
pub fn hands(&self) -> Hands { pub fn hands(&self) -> Hands {
match self { match self {
ToolKind::Sword(_) => Hands::TwoHand, ToolKind::Sword => Hands::TwoHand,
ToolKind::Axe(_) => Hands::TwoHand, ToolKind::Axe => Hands::TwoHand,
ToolKind::Hammer(_) => Hands::TwoHand, ToolKind::Hammer => Hands::TwoHand,
ToolKind::Bow(_) => Hands::TwoHand, ToolKind::Bow => Hands::TwoHand,
ToolKind::Dagger(_) => Hands::OneHand, ToolKind::Dagger => Hands::OneHand,
ToolKind::Staff(_) => Hands::TwoHand, ToolKind::Staff => Hands::TwoHand,
ToolKind::Sceptre(_) => Hands::TwoHand, ToolKind::Sceptre => Hands::TwoHand,
ToolKind::Shield(_) => Hands::OneHand, ToolKind::Shield => Hands::OneHand,
ToolKind::NpcWeapon(_) => Hands::TwoHand, ToolKind::Unique(_) => Hands::TwoHand,
ToolKind::Debug(_) => Hands::TwoHand, ToolKind::Debug => Hands::TwoHand,
ToolKind::Farming(_) => Hands::TwoHand, ToolKind::Farming => Hands::TwoHand,
ToolKind::Empty => Hands::OneHand, ToolKind::Empty => Hands::OneHand,
} }
} }
@ -90,8 +90,9 @@ impl Tool {
use CharacterAbility::*; use CharacterAbility::*;
use ToolKind::*; use ToolKind::*;
use UniqueKind::*;
match &self.kind { match &self.kind {
Sword(_) => vec![ Sword => vec![
ComboMelee { ComboMelee {
stage_data: vec![ stage_data: vec![
combo_melee::Stage { combo_melee::Stage {
@ -173,7 +174,7 @@ impl Tool {
num_spins: 3, num_spins: 3,
}, },
], ],
Axe(_) => vec![ Axe => vec![
BasicMelee { BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(600), buildup_duration: Duration::from_millis(600),
@ -212,7 +213,7 @@ impl Tool {
vertical_leap_strength: 8.0, vertical_leap_strength: 8.0,
}, },
], ],
Hammer(_) => vec![ Hammer => vec![
BasicMelee { BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(600), buildup_duration: Duration::from_millis(600),
@ -250,7 +251,7 @@ impl Tool {
vertical_leap_strength: 8.0, vertical_leap_strength: 8.0,
}, },
], ],
Farming(_) => vec![BasicMelee { Farming => vec![BasicMelee {
energy_cost: 1, energy_cost: 1,
buildup_duration: Duration::from_millis(600), buildup_duration: Duration::from_millis(600),
swing_duration: Duration::from_millis(100), swing_duration: Duration::from_millis(100),
@ -260,7 +261,7 @@ impl Tool {
range: 3.5, range: 3.5,
max_angle: 20.0, max_angle: 20.0,
}], }],
Bow(_) => vec![ Bow => vec![
BasicRanged { BasicRanged {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(100), buildup_duration: Duration::from_millis(100),
@ -353,7 +354,7 @@ impl Tool {
reps_remaining: 5, reps_remaining: 5,
}, },
], ],
Dagger(_) => vec![BasicMelee { Dagger => vec![BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(100), buildup_duration: Duration::from_millis(100),
swing_duration: Duration::from_millis(100), swing_duration: Duration::from_millis(100),
@ -363,7 +364,7 @@ impl Tool {
range: 3.5, range: 3.5,
max_angle: 20.0, max_angle: 20.0,
}], }],
Sceptre(_) => vec![ Sceptre => vec![
BasicBeam { BasicBeam {
buildup_duration: Duration::from_millis(250), buildup_duration: Duration::from_millis(250),
recover_duration: Duration::from_millis(250), recover_duration: Duration::from_millis(250),
@ -442,7 +443,7 @@ impl Tool {
projectile_speed: 40.0, projectile_speed: 40.0,
}, },
], ],
Staff(_) => vec![ Staff => vec![
BasicRanged { BasicRanged {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(500), buildup_duration: Duration::from_millis(500),
@ -517,7 +518,7 @@ impl Tool {
move_efficiency: 0.1, move_efficiency: 0.1,
}, },
], ],
Shield(_) => vec![ Shield => vec![
BasicMelee { BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(100), buildup_duration: Duration::from_millis(100),
@ -530,9 +531,7 @@ impl Tool {
}, },
BasicBlock, BasicBlock,
], ],
NpcWeapon(kind) => { Unique(StoneGolemFist) => vec![
if kind == "StoneGolemsFist" {
vec![
BasicMelee { BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(400), buildup_duration: Duration::from_millis(400),
@ -557,9 +556,8 @@ impl Tool {
requires_ground: true, requires_ground: true,
move_efficiency: 0.05, move_efficiency: 0.05,
}, },
] ],
} else if kind == "BeastClaws" { Unique(BeastClaws) => vec![BasicMelee {
vec![BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(250), buildup_duration: Duration::from_millis(250),
swing_duration: Duration::from_millis(250), swing_duration: Duration::from_millis(250),
@ -568,21 +566,8 @@ impl Tool {
base_damage: 200, base_damage: 200,
range: 5.0, range: 5.0,
max_angle: 120.0, max_angle: 120.0,
}] }],
} else { Debug => vec![
vec![BasicMelee {
energy_cost: 0,
buildup_duration: Duration::from_millis(100),
swing_duration: Duration::from_millis(100),
recover_duration: Duration::from_millis(200),
base_damage: 10,
knockback: 0.0,
range: 1.0,
max_angle: 30.0,
}]
}
},
Debug(_) => vec![
CharacterAbility::Boost { CharacterAbility::Boost {
movement_duration: Duration::from_millis(50), movement_duration: Duration::from_millis(50),
only_up: false, only_up: false,
@ -624,3 +609,9 @@ impl Tool {
} }
} }
} }
#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum UniqueKind {
StoneGolemFist,
BeastClaws,
}

View File

@ -4,7 +4,10 @@ use crate::{
agent::Activity, agent::Activity,
group, group,
group::Invite, group::Invite,
item::{tool::ToolKind, ItemKind}, item::{
tool::{ToolKind, UniqueKind},
ItemKind,
},
Agent, Alignment, Body, CharacterState, ControlAction, ControlEvent, Controller, Energy, Agent, Alignment, Body, CharacterState, ControlAction, ControlEvent, Controller, Energy,
GroupManip, Health, LightEmitter, Loadout, MountState, Ori, PhysicsState, Pos, Scale, GroupManip, Health, LightEmitter, Loadout, MountState, Ori, PhysicsState, Pos, Scale,
UnresolvedChatMsg, Vel, UnresolvedChatMsg, Vel,
@ -317,14 +320,13 @@ impl<'a> System<'a> for Sys {
None None
} }
}) { }) {
Some(ToolKind::Bow(_)) => Tactic::RangedPowerup, Some(ToolKind::Bow) => Tactic::RangedPowerup,
Some(ToolKind::Staff(_)) => Tactic::Staff, Some(ToolKind::Staff) => Tactic::Staff,
Some(ToolKind::Hammer(_)) => Tactic::Hammer, Some(ToolKind::Hammer) => Tactic::Hammer,
Some(ToolKind::Sword(_)) => Tactic::Sword, Some(ToolKind::Sword) => Tactic::Sword,
Some(ToolKind::Axe(_)) => Tactic::Axe, Some(ToolKind::Axe) => Tactic::Axe,
Some(ToolKind::NpcWeapon(kind)) => match kind.as_str() { Some(ToolKind::Unique(UniqueKind::StoneGolemFist)) => {
"StoneGolemsFist" => Tactic::StoneGolemBoss, Tactic::StoneGolemBoss
_ => Tactic::Melee,
}, },
_ => Tactic::Melee, _ => Tactic::Melee,
}; };

View File

@ -72,22 +72,22 @@ fn weapon_stats() -> Result<(), Box<dyn Error>> {
fn get_tool_kind(kind: &ToolKind) -> String { fn get_tool_kind(kind: &ToolKind) -> String {
match kind { match kind {
ToolKind::Sword(_) => "Sword".to_string(), ToolKind::Sword => "Sword".to_string(),
ToolKind::Axe(_) => "Axe".to_string(), ToolKind::Axe => "Axe".to_string(),
ToolKind::Hammer(_) => "Hammer".to_string(), ToolKind::Hammer => "Hammer".to_string(),
ToolKind::Bow(_) => "Bow".to_string(), ToolKind::Bow => "Bow".to_string(),
ToolKind::Dagger(_) => "Dagger".to_string(), ToolKind::Dagger => "Dagger".to_string(),
ToolKind::Staff(_) => "Staff".to_string(), ToolKind::Staff => "Staff".to_string(),
ToolKind::Sceptre(_) => "Sceptre".to_string(), ToolKind::Sceptre => "Sceptre".to_string(),
ToolKind::Shield(_) => "Shield".to_string(), ToolKind::Shield => "Shield".to_string(),
ToolKind::Debug(_) => "Debug".to_string(), ToolKind::Debug => "Debug".to_string(),
ToolKind::Farming(_) => "Farming".to_string(), ToolKind::Farming => "Farming".to_string(),
ToolKind::NpcWeapon(_) => "NpcWeapon".to_string(), ToolKind::Unique(_) => "Unique".to_string(),
ToolKind::Empty => "Empty".to_string(), ToolKind::Empty => "Empty".to_string(),
} }
} }
fn get_tool_kind_kind(kind: &ToolKind) -> String { /*fn get_tool_kind_kind(kind: &ToolKind) -> String {
match kind { match kind {
ToolKind::Sword(x) => x.clone(), ToolKind::Sword(x) => x.clone(),
ToolKind::Axe(x) => x.clone(), ToolKind::Axe(x) => x.clone(),
@ -102,7 +102,7 @@ fn get_tool_kind_kind(kind: &ToolKind) -> String {
ToolKind::NpcWeapon(x) => x.clone(), ToolKind::NpcWeapon(x) => x.clone(),
ToolKind::Empty => "".to_string(), ToolKind::Empty => "".to_string(),
} }
} }*/
fn get_armor_kind(kind: &ArmorKind) -> String { fn get_armor_kind(kind: &ArmorKind) -> String {
match kind { match kind {
@ -146,7 +146,7 @@ fn all_items() -> Result<(), Box<dyn Error>> {
let kind = match item.kind() { let kind = match item.kind() {
ItemKind::Armor(armor) => get_armor_kind_kind(&armor.kind), ItemKind::Armor(armor) => get_armor_kind_kind(&armor.kind),
ItemKind::Lantern(lantern) => lantern.kind.clone(), ItemKind::Lantern(lantern) => lantern.kind.clone(),
ItemKind::Tool(tool) => get_tool_kind_kind(&tool.kind), //ItemKind::Tool(tool) => get_tool_kind_kind(&tool.kind),
_ => "".to_owned(), _ => "".to_owned(),
}; };

View File

@ -56,7 +56,7 @@ impl Animation for AlphaAnimation {
next.torso.position = Vec3::new(0.0, 0.0, 0.1); next.torso.position = Vec3::new(0.0, 0.0, 0.1);
next.torso.orientation = Quaternion::rotation_z(0.0); next.torso.orientation = Quaternion::rotation_z(0.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -87,7 +87,7 @@ impl Animation for AlphaAnimation {
movement1 * -0.9 + (movement2 * 1.75).sin() * 2.5 + movement3 * -0.5, movement1 * -0.9 + (movement2 * 1.75).sin() * 2.5 + movement3 * -0.5,
); );
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.hand_l.position = Vec3::new(-12.0, 0.0, 10.0); next.hand_l.position = Vec3::new(-12.0, 0.0, 10.0);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(0.0) * Quaternion::rotation_z(-2.0); Quaternion::rotation_x(0.0) * Quaternion::rotation_z(-2.0);
@ -138,7 +138,7 @@ impl Animation for AlphaAnimation {
* Quaternion::rotation_y(slowersmooth * 0.35 - 0.3) * Quaternion::rotation_y(slowersmooth * 0.35 - 0.3)
* Quaternion::rotation_z(1.4 + slowersmooth * 0.2); * Quaternion::rotation_z(1.4 + slowersmooth * 0.2);
}, },
Some(ToolKind::Debug(_)) => { Some(ToolKind::Debug) => {
next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0); next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0);
next.hand_l.orientation = Quaternion::rotation_x(1.27); next.hand_l.orientation = Quaternion::rotation_x(1.27);
next.main.position = Vec3::new(-5.0, 5.0, 23.0); next.main.position = Vec3::new(-5.0, 5.0, 23.0);

View File

@ -54,7 +54,7 @@ impl Animation for BeamAnimation {
* Quaternion::rotation_z(0.0); * Quaternion::rotation_z(0.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.control.position = Vec3::new( next.control.position = Vec3::new(
s_a.stc.0 + (movement1 * 26.0) * (1.0 - movement3), s_a.stc.0 + (movement1 * 26.0) * (1.0 - movement3),
s_a.stc.1 + (movement1 + (movement2 * 8.0).sin() * 2.0) * (1.0 - movement3), s_a.stc.1 + (movement1 + (movement2 * 8.0).sin() * 2.0) * (1.0 - movement3),

View File

@ -78,7 +78,7 @@ impl Animation for ChargeAnimation {
next.lower_torso.orientation = Quaternion::rotation_z(stop * -0.7 + tilt * 4.0); next.lower_torso.orientation = Quaternion::rotation_z(stop * -0.7 + tilt * 4.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2); next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3);
@ -98,7 +98,7 @@ impl Animation for ChargeAnimation {
* Quaternion::rotation_y(s_a.stc.4) * Quaternion::rotation_y(s_a.stc.4)
* Quaternion::rotation_z(s_a.stc.5 + stop * 0.2); * Quaternion::rotation_z(s_a.stc.5 + stop * 0.2);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2); next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2);

View File

@ -69,7 +69,7 @@ impl Animation for DashAnimation {
match active_tool_kind { match active_tool_kind {
//TODO: Inventory //TODO: Inventory
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.head.position = next.head.position =
Vec3::new(0.0, 0.0 + s_a.head.0, s_a.head.1 + movement2.min(1.0) * 1.0); Vec3::new(0.0, 0.0 + s_a.head.0, s_a.head.1 + movement2.min(1.0) * 1.0);
next.head.orientation = Quaternion::rotation_x(0.0) next.head.orientation = Quaternion::rotation_x(0.0)

View File

@ -33,19 +33,19 @@ impl Animation for EquipAnimation {
next.control.position = Vec3::new(equip_slowa * -1.5, 0.0, equip_slow * 1.5); next.control.position = Vec3::new(equip_slowa * -1.5, 0.0, equip_slow * 1.5);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.hand_l.position = Vec3::new(-18.0, -8.0, -1.0); next.hand_l.position = Vec3::new(-18.0, -8.0, -1.0);
next.hand_r.position = Vec3::new(-16.0, -7.5, -4.0); next.hand_r.position = Vec3::new(-16.0, -7.5, -4.0);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
next.hand_l.position = Vec3::new(-7.0, -5.0, 17.0); next.hand_l.position = Vec3::new(-7.0, -5.0, 17.0);
next.hand_r.position = Vec3::new(-5.0, -4.5, 14.0); next.hand_r.position = Vec3::new(-5.0, -4.5, 14.0);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.hand_l.position = Vec3::new(-15.0, -7.0, 3.0); next.hand_l.position = Vec3::new(-15.0, -7.0, 3.0);
next.hand_r.position = Vec3::new(-13.0, -6.5, 0.0); next.hand_r.position = Vec3::new(-13.0, -6.5, 0.0);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(4.0, -6.0, 0.0); next.hand_l.position = Vec3::new(4.0, -6.0, 0.0);
next.hand_r.position = Vec3::new(6.0, -6.0, 6.0); next.hand_r.position = Vec3::new(6.0, -6.0, 6.0);
next.hand_l.orientation = next.hand_l.orientation =
@ -53,7 +53,7 @@ impl Animation for EquipAnimation {
next.hand_r.orientation = next.hand_r.orientation =
Quaternion::rotation_y(2.2) * Quaternion::rotation_z(-1.57); Quaternion::rotation_y(2.2) * Quaternion::rotation_z(-1.57);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.hand_l.position = Vec3::new(-3.0, -5.0, 9.0); next.hand_l.position = Vec3::new(-3.0, -5.0, 9.0);
next.hand_r.position = Vec3::new(-1.75, -4.5, 7.0); next.hand_r.position = Vec3::new(-1.75, -4.5, 7.0);
}, },

View File

@ -90,19 +90,19 @@ impl Animation for IdleAnimation {
Quaternion::rotation_z(0.0 + slow * 0.2) * Quaternion::rotation_x(0.0); Quaternion::rotation_z(0.0 + slow * 0.2) * Quaternion::rotation_x(0.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(-2.0, -5.0, -6.0); next.main.position = Vec3::new(-2.0, -5.0, -6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(-6.0, -5.0, -12.0); next.main.position = Vec3::new(-6.0, -5.0, -12.0);
next.main.orientation = Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },

View File

@ -60,19 +60,19 @@ impl Animation for JumpAnimation {
next.second.scale = Vec3::one() * 0.0; next.second.scale = Vec3::one() * 0.0;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(-2.0, -5.0, -6.0); next.main.position = Vec3::new(-2.0, -5.0, -6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(-6.0, -5.0, -12.0); next.main.position = Vec3::new(-6.0, -5.0, -12.0);
next.main.orientation = Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },

View File

@ -38,7 +38,7 @@ impl Animation for LeapAnimation {
_ => (0.0, 0.0, 0.0, 0.0), _ => (0.0, 0.0, 0.0, 0.0),
}; };
if let Some(ToolKind::Hammer(_)) = active_tool_kind { if let Some(ToolKind::Hammer) = active_tool_kind {
next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2); next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.hhl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.hhl.3);
next.hand_r.position = Vec3::new(s_a.hhr.0, s_a.hhr.1, s_a.hhr.2); next.hand_r.position = Vec3::new(s_a.hhr.0, s_a.hhr.1, s_a.hhr.2);

View File

@ -298,22 +298,22 @@ impl Animation for RunAnimation {
* Quaternion::rotation_z(0.0); * Quaternion::rotation_z(0.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(-2.0, -5.0, -6.0); next.main.position = Vec3::new(-2.0, -5.0, -6.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(-6.0, -5.0, -12.0); next.main.position = Vec3::new(-6.0, -5.0, -12.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57); Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.main.position = Vec3::new(-10.0, -8.0, 12.0); next.main.position = Vec3::new(-10.0, -8.0, 12.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);

View File

@ -317,7 +317,7 @@ impl Animation for ShootAnimation {
next.lower_torso.orientation = next.upper_torso.orientation * -0.08; next.lower_torso.orientation = next.upper_torso.orientation * -0.08;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2); next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3);
@ -337,7 +337,7 @@ impl Animation for ShootAnimation {
* Quaternion::rotation_y(s_a.stc.4) * Quaternion::rotation_y(s_a.stc.4)
* Quaternion::rotation_z(s_a.stc.5 + exp * 1.5); * Quaternion::rotation_z(s_a.stc.5 + exp * 1.5);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.hand_l.position = Vec3::new( next.hand_l.position = Vec3::new(
s_a.bhl.0 - exp * 2.0, s_a.bhl.0 - exp * 2.0,
s_a.bhl.1 - exp * 4.0, s_a.bhl.1 - exp * 4.0,

View File

@ -51,7 +51,7 @@ impl Animation for SpinAnimation {
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1);
if let Some(ToolKind::Sword(_)) = active_tool_kind { if let Some(ToolKind::Sword) = active_tool_kind {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -92,8 +92,7 @@ impl Animation for SpinAnimation {
next.torso.orientation = Quaternion::rotation_z(movement2 * 6.28); next.torso.orientation = Quaternion::rotation_z(movement2 * 6.28);
} }
if let Some(ToolKind::Axe(_) | ToolKind::Hammer(_) | ToolKind::Dagger(_)) = active_tool_kind if let Some(ToolKind::Axe | ToolKind::Hammer | ToolKind::Dagger) = active_tool_kind {
{
next.hand_l.position = Vec3::new(-0.75, -1.0, -2.5); next.hand_l.position = Vec3::new(-0.75, -1.0, -2.5);
next.hand_l.orientation = Quaternion::rotation_x(1.27); next.hand_l.orientation = Quaternion::rotation_x(1.27);
next.hand_r.position = Vec3::new(0.75, -1.5, -5.5); next.hand_r.position = Vec3::new(0.75, -1.5, -5.5);

View File

@ -62,7 +62,7 @@ impl Animation for SpinMeleeAnimation {
let quick = (anim_time as f32 * lab as f32 * 8.0).sin(); let quick = (anim_time as f32 * lab as f32 * 8.0).sin();
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -85,7 +85,7 @@ impl Animation for SpinMeleeAnimation {
next.head.orientation = Quaternion::rotation_x(-0.15 + movement3 * 0.15); next.head.orientation = Quaternion::rotation_x(-0.15 + movement3 * 0.15);
next.lower_torso.orientation = Quaternion::rotation_x(0.2); next.lower_torso.orientation = Quaternion::rotation_x(0.2);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
next.hand_l.position = Vec3::new(-0.5, 0.0, 4.0); next.hand_l.position = Vec3::new(-0.5, 0.0, 4.0);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(PI / 2.0) * Quaternion::rotation_y(PI); Quaternion::rotation_x(PI / 2.0) * Quaternion::rotation_y(PI);

View File

@ -2,7 +2,7 @@ use super::{
super::{vek::*, Animation}, super::{vek::*, Animation},
BipedLargeSkeleton, SkeletonAttr, BipedLargeSkeleton, SkeletonAttr,
}; };
use common::comp::item::ToolKind; use common::comp::item::{ToolKind, UniqueKind};
use std::{f32::consts::PI, ops::Mul}; use std::{f32::consts::PI, ops::Mul};
pub struct WieldAnimation; pub struct WieldAnimation;
@ -208,7 +208,7 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_z(test * 0.02); * Quaternion::rotation_z(test * 0.02);
} }
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.hand_l.position = Vec3::new(s_a.shl.0, s_a.shl.1, s_a.shl.2); next.hand_l.position = Vec3::new(s_a.shl.0, s_a.shl.1, s_a.shl.2);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(s_a.shl.3) * Quaternion::rotation_y(s_a.shl.4); Quaternion::rotation_x(s_a.shl.3) * Quaternion::rotation_y(s_a.shl.4);
@ -222,7 +222,7 @@ impl Animation for WieldAnimation {
next.control.orientation = Quaternion::rotation_x(u_slow * 0.15) next.control.orientation = Quaternion::rotation_x(u_slow * 0.15)
* Quaternion::rotation_z(u_slowalt * 0.08); * Quaternion::rotation_z(u_slowalt * 0.08);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2); next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.bhl.3) next.hand_l.orientation = Quaternion::rotation_x(s_a.bhl.3)
* Quaternion::rotation_y(s_a.bhl.4) * Quaternion::rotation_y(s_a.bhl.4)
@ -243,7 +243,7 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_y(s_a.bc.4) * Quaternion::rotation_y(s_a.bc.4)
* Quaternion::rotation_z(s_a.bc.5 + u_slowalt * 0.1); * Quaternion::rotation_z(s_a.bc.5 + u_slowalt * 0.1);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2); next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.hhl.3) next.hand_l.orientation = Quaternion::rotation_x(s_a.hhl.3)
* Quaternion::rotation_y(s_a.hhl.4) * Quaternion::rotation_y(s_a.hhl.4)
@ -262,7 +262,7 @@ impl Animation for WieldAnimation {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_y(0.0); next.main.orientation = Quaternion::rotation_y(0.0);
}, },
Some(ToolKind::Staff(_)) => { Some(ToolKind::Staff) => {
next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2); next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(s_a.sthl.3) * Quaternion::rotation_y(s_a.sthl.4); Quaternion::rotation_x(s_a.sthl.3) * Quaternion::rotation_y(s_a.sthl.4);
@ -283,7 +283,7 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_y(0.15) * Quaternion::rotation_y(0.15)
* Quaternion::rotation_z(u_slowalt * 0.08); * Quaternion::rotation_z(u_slowalt * 0.08);
}, },
Some(ToolKind::NpcWeapon(_)) => { Some(ToolKind::Unique(UniqueKind::BeastClaws)) => {
next.shoulder_l.position = next.shoulder_l.position =
Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2); Vec3::new(-s_a.shoulder.0, s_a.shoulder.1, s_a.shoulder.2);

View File

@ -65,7 +65,7 @@ impl Animation for AlphaAnimation {
next.torso.position = Vec3::new(0.0, 0.0, 0.1) * s_a.scaler; next.torso.position = Vec3::new(0.0, 0.0, 0.1) * s_a.scaler;
next.torso.orientation = Quaternion::rotation_z(0.0); next.torso.orientation = Quaternion::rotation_z(0.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -96,13 +96,13 @@ impl Animation for AlphaAnimation {
movement1 * -0.9 + (movement2 * 1.75).sin() * 2.5 + movement3 * -0.5, movement1 * -0.9 + (movement2 * 1.75).sin() * 2.5 + movement3 * -0.5,
); );
}, },
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.control_l.position = Vec3::new(-10.0 + push * 5.0, 6.0 + push * 5.0, 2.0); next.control_l.position = Vec3::new(-10.0 + push * 5.0, 6.0 + push * 5.0, 2.0);
next.control_l.orientation = Quaternion::rotation_x(-1.4 + slow * 0.4) next.control_l.orientation = Quaternion::rotation_x(-1.4 + slow * 0.4)
* Quaternion::rotation_y(slow * -1.3) * Quaternion::rotation_y(slow * -1.3)
* Quaternion::rotation_z(1.4 + slow * -0.5); * Quaternion::rotation_z(1.4 + slow * -0.5);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
next.head.position = Vec3::new(0.0, 0.0 + s_a.head.0, s_a.head.1); next.head.position = Vec3::new(0.0, 0.0 + s_a.head.0, s_a.head.1);
next.head.orientation = Quaternion::rotation_z(0.1 + axe * 0.2) next.head.orientation = Quaternion::rotation_z(0.1 + axe * 0.2)
* Quaternion::rotation_x(0.0) * Quaternion::rotation_x(0.0)
@ -129,7 +129,7 @@ impl Animation for AlphaAnimation {
* Quaternion::rotation_z(PI * 0.4); * Quaternion::rotation_z(PI * 0.4);
next.lantern.orientation = Quaternion::rotation_x(0.4); next.lantern.orientation = Quaternion::rotation_x(0.4);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.hand_l.position = Vec3::new(-12.0, 0.0, 0.0); next.hand_l.position = Vec3::new(-12.0, 0.0, 0.0);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(-0.0) * Quaternion::rotation_y(0.0); Quaternion::rotation_x(-0.0) * Quaternion::rotation_y(0.0);
@ -187,7 +187,7 @@ impl Animation for AlphaAnimation {
* Quaternion::rotation_y(slowersmooth * 0.35 - 0.3) * Quaternion::rotation_y(slowersmooth * 0.35 - 0.3)
* Quaternion::rotation_z(1.4 + slowersmooth * 0.2); * Quaternion::rotation_z(1.4 + slowersmooth * 0.2);
}, },
Some(ToolKind::Debug(_)) => { Some(ToolKind::Debug) => {
next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0); next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0);
next.hand_l.orientation = Quaternion::rotation_x(1.27); next.hand_l.orientation = Quaternion::rotation_x(1.27);
next.main.position = Vec3::new(-5.0, 5.0, 23.0); next.main.position = Vec3::new(-5.0, 5.0, 23.0);

View File

@ -54,7 +54,7 @@ impl Animation for BeamAnimation {
* Quaternion::rotation_z(0.0); * Quaternion::rotation_z(0.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.control.position = Vec3::new( next.control.position = Vec3::new(
s_a.stc.0 + (movement1 * 16.0) * (1.0 - movement3), s_a.stc.0 + (movement1 * 16.0) * (1.0 - movement3),
s_a.stc.1 + (movement1 + (movement2 * 8.0).sin() * 2.0) * (1.0 - movement3), s_a.stc.1 + (movement1 + (movement2 * 8.0).sin() * 2.0) * (1.0 - movement3),

View File

@ -85,7 +85,7 @@ impl Animation for ChargeAnimation {
next.shorts.orientation = Quaternion::rotation_z(stop * -0.7 + tilt * 4.0); next.shorts.orientation = Quaternion::rotation_z(stop * -0.7 + tilt * 4.0);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2); next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3);
@ -105,7 +105,7 @@ impl Animation for ChargeAnimation {
* Quaternion::rotation_y(s_a.stc.4) * Quaternion::rotation_y(s_a.stc.4)
* Quaternion::rotation_z(s_a.stc.5 + stop * 0.2); * Quaternion::rotation_z(s_a.stc.5 + stop * 0.2);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2); next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2);

View File

@ -49,7 +49,7 @@ impl Animation for ChargeswingAnimation {
Some(StageSection::Recover) => (1.0, 1.0, (anim_time as f32).powf(4.0), 0.0), Some(StageSection::Recover) => (1.0, 1.0, (anim_time as f32).powf(4.0), 0.0),
_ => (0.0, 0.0, 0.0, 0.0), _ => (0.0, 0.0, 0.0, 0.0),
}; };
if let Some(ToolKind::Hammer(_)) = active_tool_kind { if let Some(ToolKind::Hammer) = active_tool_kind {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
next.hand_l.position = Vec3::new( next.hand_l.position = Vec3::new(

View File

@ -68,7 +68,7 @@ impl Animation for DashAnimation {
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);

View File

@ -32,23 +32,23 @@ impl Animation for EquipAnimation {
next.control.position = Vec3::new(equip_slowa * -1.5, 0.0, equip_slow * 1.5); next.control.position = Vec3::new(equip_slowa * -1.5, 0.0, equip_slow * 1.5);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.hand_l.position = Vec3::new(-8.0, -5.0, 17.0); next.hand_l.position = Vec3::new(-8.0, -5.0, 17.0);
next.hand_r.position = Vec3::new(-6.0, -4.5, 14.0); next.hand_r.position = Vec3::new(-6.0, -4.5, 14.0);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
next.hand_l.position = Vec3::new(-7.0, -5.0, 17.0); next.hand_l.position = Vec3::new(-7.0, -5.0, 17.0);
next.hand_r.position = Vec3::new(-5.0, -4.5, 14.0); next.hand_r.position = Vec3::new(-5.0, -4.5, 14.0);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.hand_l.position = Vec3::new(-5.0, -5.0, 13.0); next.hand_l.position = Vec3::new(-5.0, -5.0, 13.0);
next.hand_r.position = Vec3::new(-3.0, -4.5, 10.0); next.hand_r.position = Vec3::new(-3.0, -4.5, 10.0);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(-3.0, -5.0, 8.0); next.hand_l.position = Vec3::new(-3.0, -5.0, 8.0);
next.hand_r.position = Vec3::new(-1.75, -4.5, 5.0); next.hand_r.position = Vec3::new(-1.75, -4.5, 5.0);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.hand_l.position = Vec3::new(-3.0, -5.0, 9.0); next.hand_l.position = Vec3::new(-3.0, -5.0, 9.0);
next.hand_r.position = Vec3::new(-1.75, -4.5, 7.0); next.hand_r.position = Vec3::new(-1.75, -4.5, 7.0);
}, },

View File

@ -79,17 +79,17 @@ impl Animation for IdleAnimation {
next.glider.scale = Vec3::one() * 0.0; next.glider.scale = Vec3::one() * 0.0;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.main.position = Vec3::new(-4.0, -5.0, 7.0); next.main.position = Vec3::new(-4.0, -5.0, 7.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.main.position = Vec3::new(-0.0, -5.0, 3.0); next.main.position = Vec3::new(-0.0, -5.0, 3.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, -5.0, 6.0); next.main.position = Vec3::new(0.0, -5.0, 6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
@ -104,12 +104,12 @@ impl Animation for IdleAnimation {
} }
match second_tool_kind { match second_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.second.position = Vec3::new(4.0, -6.0, 7.0); next.second.position = Vec3::new(4.0, -6.0, 7.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.second.position = Vec3::new(0.0, -4.0, 3.0); next.second.position = Vec3::new(0.0, -4.0, 3.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI);

View File

@ -126,21 +126,21 @@ impl Animation for JumpAnimation {
next.glider.scale = Vec3::one() * 0.0; next.glider.scale = Vec3::one() * 0.0;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.main.position = Vec3::new(-4.0, -5.0, 7.0); next.main.position = Vec3::new(-4.0, -5.0, 7.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.main.position = Vec3::new(-0.0, -5.0, 3.0); next.main.position = Vec3::new(-0.0, -5.0, 3.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(2.0, -5.0, -1.0); next.main.position = Vec3::new(2.0, -5.0, -1.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);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, -5.0, 6.0); next.main.position = Vec3::new(0.0, -5.0, 6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
@ -151,12 +151,12 @@ impl Animation for JumpAnimation {
} }
match second_tool_kind { match second_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.second.position = Vec3::new(4.0, -6.0, 7.0); next.second.position = Vec3::new(4.0, -6.0, 7.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.second.position = Vec3::new(0.0, -4.0, 3.0); next.second.position = Vec3::new(0.0, -4.0, 3.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI);

View File

@ -39,7 +39,7 @@ impl Animation for LeapAnimation {
_ => (0.0, 0.0, 0.0, 0.0), _ => (0.0, 0.0, 0.0, 0.0),
}; };
if let Some(ToolKind::Hammer(_)) = active_tool_kind { if let Some(ToolKind::Hammer) = active_tool_kind {
next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2); next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.hhl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.hhl.3);
next.hand_r.position = Vec3::new(s_a.hhr.0, s_a.hhr.1, s_a.hhr.2); next.hand_r.position = Vec3::new(s_a.hhr.0, s_a.hhr.1, s_a.hhr.2);
@ -82,7 +82,7 @@ impl Animation for LeapAnimation {
s_a.foot.2 + 5.0 + movement3 * -5.0, s_a.foot.2 + 5.0 + movement3 * -5.0,
); );
next.foot_r.orientation = Quaternion::rotation_x(0.9 + movement3 * -1.7); next.foot_r.orientation = Quaternion::rotation_x(0.9 + movement3 * -1.7);
} else if let Some(ToolKind::Axe(_)) = active_tool_kind { } else if let Some(ToolKind::Axe) = active_tool_kind {
next.hand_l.position = Vec3::new(s_a.ahl.0, s_a.ahl.1, s_a.ahl.2); next.hand_l.position = Vec3::new(s_a.ahl.0, s_a.ahl.1, s_a.ahl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.ahl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.ahl.3);
next.hand_r.position = Vec3::new(s_a.ahr.0, s_a.ahr.1, s_a.ahr.2); next.hand_r.position = Vec3::new(s_a.ahr.0, s_a.ahr.1, s_a.ahr.2);

View File

@ -42,7 +42,7 @@ impl Animation for RepeaterAnimation {
fn fire(x: f32) -> f32 { (x * 18.0).sin() } fn fire(x: f32) -> f32 { (x * 18.0).sin() }
if let Some(ToolKind::Bow(_)) = active_tool_kind { if let Some(ToolKind::Bow) = active_tool_kind {
next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2); next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.bhl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.bhl.3);
next.hand_r.position = Vec3::new(s_a.bhr.0, s_a.bhr.1, s_a.bhr.2); next.hand_r.position = Vec3::new(s_a.bhr.0, s_a.bhr.1, s_a.bhr.2);

View File

@ -187,21 +187,21 @@ impl Animation for RunAnimation {
next.glider.scale = Vec3::one() * 0.0; next.glider.scale = Vec3::one() * 0.0;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.main.position = Vec3::new(-4.0, -5.0, 7.0); next.main.position = Vec3::new(-4.0, -5.0, 7.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.main.position = Vec3::new(-0.0, -5.0, 3.0); next.main.position = Vec3::new(-0.0, -5.0, 3.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(2.0, -5.0, -1.0); next.main.position = Vec3::new(2.0, -5.0, -1.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);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, -5.0, 6.0); next.main.position = Vec3::new(0.0, -5.0, 6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
@ -213,12 +213,12 @@ impl Animation for RunAnimation {
} }
match second_tool_kind { match second_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.second.position = Vec3::new(4.0, -6.0, 7.0); next.second.position = Vec3::new(4.0, -6.0, 7.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.second.position = Vec3::new(0.0, -4.0, 3.0); next.second.position = Vec3::new(0.0, -4.0, 3.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI);

View File

@ -55,7 +55,7 @@ impl Animation for ShootAnimation {
next.shorts.orientation = next.chest.orientation * -0.08; next.shorts.orientation = next.chest.orientation * -0.08;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2); next.hand_l.position = Vec3::new(s_a.sthl.0, s_a.sthl.1, s_a.sthl.2);
next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3); next.hand_l.orientation = Quaternion::rotation_x(s_a.sthl.3);
@ -72,7 +72,7 @@ impl Animation for ShootAnimation {
* Quaternion::rotation_y(s_a.stc.4) * Quaternion::rotation_y(s_a.stc.4)
* Quaternion::rotation_z(s_a.stc.5 + exp * 1.5); * Quaternion::rotation_z(s_a.stc.5 + exp * 1.5);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.hand_l.position = Vec3::new( next.hand_l.position = Vec3::new(
s_a.bhl.0 - exp * 2.0, s_a.bhl.0 - exp * 2.0,
s_a.bhl.1 - exp * 4.0, s_a.bhl.1 - exp * 4.0,

View File

@ -54,7 +54,7 @@ impl Animation for SpinAnimation {
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1); next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1);
if let Some(ToolKind::Sword(_)) = active_tool_kind { if let Some(ToolKind::Sword) = active_tool_kind {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -98,8 +98,7 @@ impl Animation for SpinAnimation {
next.torso.orientation = Quaternion::rotation_z(movement2 * 6.28); next.torso.orientation = Quaternion::rotation_z(movement2 * 6.28);
} }
if let Some(ToolKind::Axe(_) | ToolKind::Hammer(_) | ToolKind::Dagger(_)) = active_tool_kind if let Some(ToolKind::Axe | ToolKind::Hammer | ToolKind::Dagger) = active_tool_kind {
{
next.hand_l.position = Vec3::new(-0.75, -1.0, -2.5); next.hand_l.position = Vec3::new(-0.75, -1.0, -2.5);
next.hand_l.orientation = Quaternion::rotation_x(1.27); next.hand_l.orientation = Quaternion::rotation_x(1.27);
next.hand_r.position = Vec3::new(0.75, -1.5, -5.5); next.hand_r.position = Vec3::new(0.75, -1.5, -5.5);

View File

@ -62,7 +62,7 @@ impl Animation for SpinMeleeAnimation {
let quick = (anim_time as f32 * lab as f32 * 8.0).sin(); let quick = (anim_time as f32 * lab as f32 * 8.0).sin();
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -90,7 +90,7 @@ impl Animation for SpinMeleeAnimation {
next.belt.orientation = Quaternion::rotation_x(0.1); next.belt.orientation = Quaternion::rotation_x(0.1);
next.shorts.orientation = Quaternion::rotation_x(0.2); next.shorts.orientation = Quaternion::rotation_x(0.2);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
next.hand_l.position = Vec3::new(-0.5, 0.0, 4.0); next.hand_l.position = Vec3::new(-0.5, 0.0, 4.0);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(PI / 2.0) * Quaternion::rotation_y(PI); Quaternion::rotation_x(PI / 2.0) * Quaternion::rotation_y(PI);

View File

@ -96,21 +96,21 @@ impl Animation for StandAnimation {
next.glider.scale = Vec3::one() * 0.0; next.glider.scale = Vec3::one() * 0.0;
next.hold.position = Vec3::new(0.4, -0.3, -5.8); next.hold.position = Vec3::new(0.4, -0.3, -5.8);
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.main.position = Vec3::new(-4.0, -5.0, 7.0); next.main.position = Vec3::new(-4.0, -5.0, 7.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.main.position = Vec3::new(-0.0, -5.0, 3.0); next.main.position = Vec3::new(-0.0, -5.0, 3.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, -5.0, 6.0); next.main.position = Vec3::new(0.0, -5.0, 6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(2.0, -5.0, -1.0); next.main.position = Vec3::new(2.0, -5.0, -1.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);
}, },
@ -121,12 +121,12 @@ impl Animation for StandAnimation {
} }
match second_tool_kind { match second_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.second.position = Vec3::new(4.0, -6.0, 7.0); next.second.position = Vec3::new(4.0, -6.0, 7.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.second.position = Vec3::new(0.0, -4.0, 3.0); next.second.position = Vec3::new(0.0, -4.0, 3.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI);

View File

@ -168,21 +168,21 @@ impl Animation for SwimAnimation {
next.glider.scale = Vec3::one() * 0.0; next.glider.scale = Vec3::one() * 0.0;
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.main.position = Vec3::new(-4.0, -5.0, 7.0); next.main.position = Vec3::new(-4.0, -5.0, 7.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.main.position = Vec3::new(-0.0, -5.0, 3.0); next.main.position = Vec3::new(-0.0, -5.0, 3.0);
next.main.orientation = next.main.orientation =
Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.main.position = Vec3::new(2.0, -5.0, -1.0); next.main.position = Vec3::new(2.0, -5.0, -1.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);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, -5.0, 6.0); next.main.position = Vec3::new(0.0, -5.0, 6.0);
next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.orientation = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57);
}, },
@ -193,12 +193,12 @@ impl Animation for SwimAnimation {
} }
match second_tool_kind { match second_tool_kind {
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.second.position = Vec3::new(4.0, -6.0, 7.0); next.second.position = Vec3::new(4.0, -6.0, 7.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(-1.5 * PI);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.second.position = Vec3::new(0.0, -4.0, 3.0); next.second.position = Vec3::new(0.0, -4.0, 3.0);
next.second.orientation = next.second.orientation =
Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI); Quaternion::rotation_y(-0.25 * PI) * Quaternion::rotation_z(1.5 * PI);

View File

@ -124,7 +124,7 @@ impl Animation for SwimWieldAnimation {
next.shorts.orientation = Quaternion::rotation_z(0.3); next.shorts.orientation = Quaternion::rotation_z(0.3);
} }
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.hand_l.position = Vec3::new(-0.75, -1.0, -2.5); next.hand_l.position = Vec3::new(-0.75, -1.0, -2.5);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(1.47) * Quaternion::rotation_y(-0.2); Quaternion::rotation_x(1.47) * Quaternion::rotation_y(-0.2);
@ -143,7 +143,7 @@ impl Animation for SwimWieldAnimation {
* Quaternion::rotation_y(0.0) * Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(u_slowalt * 0.08); * Quaternion::rotation_z(u_slowalt * 0.08);
}, },
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
let hand_scale = 1.12; let hand_scale = 1.12;
next.control.position = Vec3::new(0.0, 0.0, 0.0); next.control.position = Vec3::new(0.0, 0.0, 0.0);
@ -174,7 +174,7 @@ impl Animation for SwimWieldAnimation {
next.control_r.position = Vec3::new(7.0, 0.0, 0.0); next.control_r.position = Vec3::new(7.0, 0.0, 0.0);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
if velocity < 0.5 { if velocity < 0.5 {
next.head.position = next.head.position =
Vec3::new(0.0, -3.5 + s_a.head.0, s_a.head.1 + u_slow * 0.1); Vec3::new(0.0, -3.5 + s_a.head.0, s_a.head.1 + u_slow * 0.1);
@ -216,7 +216,7 @@ impl Animation for SwimWieldAnimation {
next.control.position = Vec3::new(-3.0, 11.0, 3.0); next.control.position = Vec3::new(-3.0, 11.0, 3.0);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.hand_l.position = Vec3::new(-12.0, 0.0, 0.0); next.hand_l.position = Vec3::new(-12.0, 0.0, 0.0);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(-0.0) * Quaternion::rotation_y(0.0); Quaternion::rotation_x(-0.0) * Quaternion::rotation_y(0.0);
@ -234,7 +234,7 @@ impl Animation for SwimWieldAnimation {
* Quaternion::rotation_y(0.0) * Quaternion::rotation_y(0.0)
* Quaternion::rotation_z(u_slowalt * 0.08); * Quaternion::rotation_z(u_slowalt * 0.08);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
next.hand_l.position = Vec3::new(1.5, 0.5, -4.0); next.hand_l.position = Vec3::new(1.5, 0.5, -4.0);
next.hand_l.orientation = next.hand_l.orientation =
Quaternion::rotation_x(1.47) * Quaternion::rotation_y(-0.3); Quaternion::rotation_x(1.47) * Quaternion::rotation_y(-0.3);
@ -254,7 +254,7 @@ impl Animation for SwimWieldAnimation {
* Quaternion::rotation_y(-0.2) * Quaternion::rotation_y(-0.2)
* Quaternion::rotation_z(u_slowalt * 0.1); * Quaternion::rotation_z(u_slowalt * 0.1);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
let hand_scale = 1.12; let hand_scale = 1.12;
next.control.position = Vec3::new(0.0, 0.0, 0.0); next.control.position = Vec3::new(0.0, 0.0, 0.0);
@ -285,7 +285,7 @@ impl Animation for SwimWieldAnimation {
next.control_r.position = Vec3::new(7.0, 0.0, 0.0); next.control_r.position = Vec3::new(7.0, 0.0, 0.0);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.hand_l.position = Vec3::new(2.0, 1.5, 0.0); next.hand_l.position = Vec3::new(2.0, 1.5, 0.0);
next.hand_l.orientation = Quaternion::rotation_x(1.20) next.hand_l.orientation = Quaternion::rotation_x(1.20)
* Quaternion::rotation_y(-0.6) * Quaternion::rotation_y(-0.6)
@ -311,7 +311,7 @@ impl Animation for SwimWieldAnimation {
next.control.orientation = next.control.orientation =
Quaternion::rotation_x(u_slow * 0.2) * Quaternion::rotation_z(u_slowalt * 0.1); Quaternion::rotation_x(u_slow * 0.2) * Quaternion::rotation_z(u_slowalt * 0.1);
}, },
Some(ToolKind::Debug(_)) => { Some(ToolKind::Debug) => {
next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0); next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0);
next.hand_l.orientation = Quaternion::rotation_x(1.27) next.hand_l.orientation = Quaternion::rotation_x(1.27)
* Quaternion::rotation_y(0.0) * Quaternion::rotation_y(0.0)

View File

@ -183,7 +183,7 @@ impl Animation for WieldAnimation {
next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1); next.shorts.position = Vec3::new(0.0, s_a.shorts.0, s_a.shorts.1);
} }
match active_tool_kind { match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -198,7 +198,7 @@ impl Animation for WieldAnimation {
next.control.orientation = Quaternion::rotation_x(s_a.sc.3 + u_slow * 0.15) next.control.orientation = Quaternion::rotation_x(s_a.sc.3 + u_slow * 0.15)
* Quaternion::rotation_z(u_slowalt * 0.08); * Quaternion::rotation_z(u_slowalt * 0.08);
}, },
Some(ToolKind::Dagger(_)) => { Some(ToolKind::Dagger) => {
next.control.position = Vec3::new(0.0, 0.0, 0.0); next.control.position = Vec3::new(0.0, 0.0, 0.0);
next.hand_l.position = Vec3::new(0.0, 0.0, 0.0); next.hand_l.position = Vec3::new(0.0, 0.0, 0.0);
@ -225,7 +225,7 @@ impl Animation for WieldAnimation {
next.control_r.position = Vec3::new(7.0, 0.0, 0.0); next.control_r.position = Vec3::new(7.0, 0.0, 0.0);
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
@ -258,7 +258,7 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_y(s_a.ac.4) * Quaternion::rotation_y(s_a.ac.4)
* Quaternion::rotation_z(s_a.ac.5); * Quaternion::rotation_z(s_a.ac.5);
}, },
Some(ToolKind::Hammer(_)) => { Some(ToolKind::Hammer) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2); next.hand_l.position = Vec3::new(s_a.hhl.0, s_a.hhl.1, s_a.hhl.2);
@ -277,7 +277,7 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_y(s_a.hc.4 + speed * -0.04) * Quaternion::rotation_y(s_a.hc.4 + speed * -0.04)
* Quaternion::rotation_z(s_a.hc.5 + u_slowalt * 0.07); * Quaternion::rotation_z(s_a.hc.5 + u_slowalt * 0.07);
}, },
Some(ToolKind::Staff(_)) | Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Staff) | Some(ToolKind::Sceptre) => {
if speed > 0.5 && velocity.z == 0.0 { if speed > 0.5 && velocity.z == 0.0 {
next.hand_r.position = Vec3::new( next.hand_r.position = Vec3::new(
4.0 + s_a.hand.0 + foothoril * 1.3, 4.0 + s_a.hand.0 + foothoril * 1.3,
@ -304,7 +304,7 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_y(s_a.stc.4) * Quaternion::rotation_y(s_a.stc.4)
* Quaternion::rotation_z(s_a.stc.5 + u_slowalt * 0.1); * Quaternion::rotation_z(s_a.stc.5 + u_slowalt * 0.1);
}, },
Some(ToolKind::Shield(_)) => { Some(ToolKind::Shield) => {
next.control.position = Vec3::new(0.0, 0.0, 0.0); next.control.position = Vec3::new(0.0, 0.0, 0.0);
next.hand_l.position = Vec3::new(0.0, 0.0, 0.0); next.hand_l.position = Vec3::new(0.0, 0.0, 0.0);
@ -323,7 +323,7 @@ impl Animation for WieldAnimation {
next.control_r.position = Vec3::new(7.0, 0.0, 0.0); next.control_r.position = Vec3::new(7.0, 0.0, 0.0);
}, },
Some(ToolKind::Bow(_)) => { Some(ToolKind::Bow) => {
next.main.position = Vec3::new(0.0, 0.0, 0.0); next.main.position = Vec3::new(0.0, 0.0, 0.0);
next.main.orientation = Quaternion::rotation_x(0.0); next.main.orientation = Quaternion::rotation_x(0.0);
next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2); next.hand_l.position = Vec3::new(s_a.bhl.0, s_a.bhl.1, s_a.bhl.2);
@ -340,13 +340,13 @@ impl Animation for WieldAnimation {
* Quaternion::rotation_y(s_a.bc.4) * Quaternion::rotation_y(s_a.bc.4)
* Quaternion::rotation_z(s_a.bc.5 + u_slowalt * 0.1); * Quaternion::rotation_z(s_a.bc.5 + u_slowalt * 0.1);
}, },
Some(ToolKind::Debug(_)) => { Some(ToolKind::Debug) => {
next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0); next.hand_l.position = Vec3::new(-7.0, 4.0, 3.0);
next.hand_l.orientation = Quaternion::rotation_x(1.27); next.hand_l.orientation = Quaternion::rotation_x(1.27);
next.main.position = Vec3::new(-5.0, 5.0, 23.0); next.main.position = Vec3::new(-5.0, 5.0, 23.0);
next.main.orientation = Quaternion::rotation_x(PI); next.main.orientation = Quaternion::rotation_x(PI);
}, },
Some(ToolKind::Farming(_)) => { Some(ToolKind::Farming) => {
if speed < 0.5 { if speed < 0.5 {
next.head.orientation = Quaternion::rotation_z(head_look.x) next.head.orientation = Quaternion::rotation_z(head_look.x)
* Quaternion::rotation_x(-0.2 + head_look.y.abs()); * Quaternion::rotation_x(-0.2 + head_look.y.abs());

View File

@ -78,12 +78,12 @@ impl State {
use common::comp::item::{tool::ToolKind, ItemKind}; use common::comp::item::{tool::ToolKind, ItemKind};
if let ItemKind::Tool(kind) = kind { if let ItemKind::Tool(kind) = kind {
match &kind.kind { match &kind.kind {
ToolKind::Staff(_) => true, ToolKind::Staff => true,
ToolKind::Debug(_) => true, ToolKind::Debug => true,
ToolKind::Sword(_) => true, ToolKind::Sword => true,
ToolKind::Hammer(_) => true, ToolKind::Hammer => true,
ToolKind::Axe(_) => true, ToolKind::Axe => true,
ToolKind::Bow(_) => true, ToolKind::Bow => true,
_ => false, _ => false,
} }
} else { } else {

View File

@ -526,28 +526,28 @@ impl<'a> Widget for Skillbar<'a> {
.map(|i| i.item.kind()) .map(|i| i.item.kind())
.and_then(|kind| match kind { .and_then(|kind| match kind {
ItemKind::Tool(Tool { kind, .. }) => match kind { ItemKind::Tool(Tool { kind, .. }) => match kind {
ToolKind::Hammer(_) => Some(( ToolKind::Hammer => Some((
"Smash of Doom", "Smash of Doom",
"\nAn AOE attack with knockback. \nLeaps to position of \ "\nAn AOE attack with knockback. \nLeaps to position of \
cursor.", cursor.",
)), )),
ToolKind::Axe(_) => { ToolKind::Axe => {
Some(("Spin Leap", "\nA slashing running spin leap.")) Some(("Spin Leap", "\nA slashing running spin leap."))
}, },
ToolKind::Staff(_) => Some(( ToolKind::Staff => Some((
"Firebomb", "Firebomb",
"\nWhirls a big fireball into the air. \nExplodes the ground \ "\nWhirls a big fireball into the air. \nExplodes the ground \
and does\na big amount of damage", and does\na big amount of damage",
)), )),
ToolKind::Sword(_) => Some(( ToolKind::Sword => Some((
"Whirlwind", "Whirlwind",
"\nMove forward while spinning with \n your sword.", "\nMove forward while spinning with \n your sword.",
)), )),
ToolKind::Bow(_) => Some(( ToolKind::Bow => Some((
"Burst", "Burst",
"\nLaunches a burst of arrows at the top \nof a running leap.", "\nLaunches a burst of arrows at the top \nof a running leap.",
)), )),
ToolKind::Debug(_) => Some(( ToolKind::Debug => Some((
"Possessing Arrow", "Possessing Arrow",
"\nShoots a poisonous arrow.\nLets you control your target.", "\nShoots a poisonous arrow.\nLets you control your target.",
)), )),
@ -623,15 +623,15 @@ impl<'a> Widget for Skillbar<'a> {
Button::image( Button::image(
match self.loadout.active_item.as_ref().map(|i| i.item.kind()) { match self.loadout.active_item.as_ref().map(|i| i.item.kind()) {
Some(ItemKind::Tool(Tool { kind, .. })) => match kind { Some(ItemKind::Tool(Tool { kind, .. })) => match kind {
ToolKind::Sword(_) => self.imgs.twohsword_m1, ToolKind::Sword => self.imgs.twohsword_m1,
ToolKind::Dagger(_) => self.imgs.onehdagger_m1, ToolKind::Dagger => self.imgs.onehdagger_m1,
ToolKind::Shield(_) => self.imgs.onehshield_m1, ToolKind::Shield => self.imgs.onehshield_m1,
ToolKind::Hammer(_) => self.imgs.twohhammer_m1, ToolKind::Hammer => self.imgs.twohhammer_m1,
ToolKind::Axe(_) => self.imgs.twohaxe_m1, ToolKind::Axe => self.imgs.twohaxe_m1,
ToolKind::Bow(_) => self.imgs.bow_m1, ToolKind::Bow => self.imgs.bow_m1,
ToolKind::Sceptre(_) => self.imgs.heal_0, ToolKind::Sceptre => self.imgs.heal_0,
ToolKind::Staff(_) => self.imgs.fireball, ToolKind::Staff => self.imgs.fireball,
ToolKind::Debug(_) => self.imgs.flyingrod_m1, ToolKind::Debug => self.imgs.flyingrod_m1,
_ => self.imgs.nothing, _ => self.imgs.nothing,
}, },
_ => self.imgs.nothing, _ => self.imgs.nothing,
@ -670,36 +670,36 @@ impl<'a> Widget for Skillbar<'a> {
.middle_of(state.ids.m2_slot) .middle_of(state.ids.m2_slot)
.set(state.ids.m2_slot_bg, ui); .set(state.ids.m2_slot_bg, ui);
Button::image(match tool_kind { Button::image(match tool_kind {
Some(ToolKind::Sword(_)) => self.imgs.twohsword_m2, Some(ToolKind::Sword) => self.imgs.twohsword_m2,
Some(ToolKind::Dagger(_)) => self.imgs.onehdagger_m2, Some(ToolKind::Dagger) => self.imgs.onehdagger_m2,
Some(ToolKind::Shield(_)) => self.imgs.onehshield_m2, Some(ToolKind::Shield) => self.imgs.onehshield_m2,
Some(ToolKind::Hammer(_)) => self.imgs.hammergolf, Some(ToolKind::Hammer) => self.imgs.hammergolf,
Some(ToolKind::Axe(_)) => self.imgs.axespin, Some(ToolKind::Axe) => self.imgs.axespin,
Some(ToolKind::Bow(_)) => self.imgs.bow_m2, Some(ToolKind::Bow) => self.imgs.bow_m2,
Some(ToolKind::Sceptre(_)) => self.imgs.heal_bomb, Some(ToolKind::Sceptre) => self.imgs.heal_bomb,
Some(ToolKind::Staff(_)) => self.imgs.flamethrower, Some(ToolKind::Staff) => self.imgs.flamethrower,
Some(ToolKind::Debug(_)) => self.imgs.flyingrod_m2, Some(ToolKind::Debug) => self.imgs.flyingrod_m2,
_ => self.imgs.nothing, _ => self.imgs.nothing,
}) })
.w_h(36.0, 36.0) .w_h(36.0, 36.0)
.middle_of(state.ids.m2_slot_bg) .middle_of(state.ids.m2_slot_bg)
.image_color(match tool_kind { .image_color(match tool_kind {
// TODO Automate this to grey out unavailable M2 skills // TODO Automate this to grey out unavailable M2 skills
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
if self.energy.current() as f64 >= 200.0 { if self.energy.current() as f64 >= 200.0 {
Color::Rgba(1.0, 1.0, 1.0, 1.0) Color::Rgba(1.0, 1.0, 1.0, 1.0)
} else { } else {
Color::Rgba(0.3, 0.3, 0.3, 0.8) Color::Rgba(0.3, 0.3, 0.3, 0.8)
} }
}, },
Some(ToolKind::Sceptre(_)) => { Some(ToolKind::Sceptre) => {
if self.energy.current() as f64 >= 400.0 { if self.energy.current() as f64 >= 400.0 {
Color::Rgba(1.0, 1.0, 1.0, 1.0) Color::Rgba(1.0, 1.0, 1.0, 1.0)
} else { } else {
Color::Rgba(0.3, 0.3, 0.3, 0.8) Color::Rgba(0.3, 0.3, 0.3, 0.8)
} }
}, },
Some(ToolKind::Axe(_)) => { Some(ToolKind::Axe) => {
if self.energy.current() as f64 >= 100.0 { if self.energy.current() as f64 >= 100.0 {
Color::Rgba(1.0, 1.0, 1.0, 1.0) Color::Rgba(1.0, 1.0, 1.0, 1.0)
} else { } else {

View File

@ -112,12 +112,12 @@ impl<'a> SlotKey<HotbarSource<'a>, HotbarImageSource<'a>> for HotbarSlot {
.and_then(|kind| { .and_then(|kind| {
match kind { match kind {
ItemKind::Tool(Tool { kind, .. }) => match kind { ItemKind::Tool(Tool { kind, .. }) => match kind {
ToolKind::Staff(_) => Some(HotbarImage::FireAoe), ToolKind::Staff => Some(HotbarImage::FireAoe),
ToolKind::Hammer(_) => Some(HotbarImage::HammerLeap), ToolKind::Hammer => Some(HotbarImage::HammerLeap),
ToolKind::Axe(_) => Some(HotbarImage::AxeLeapSlash), ToolKind::Axe => Some(HotbarImage::AxeLeapSlash),
ToolKind::Bow(_) => Some(HotbarImage::BowJumpBurst), ToolKind::Bow => Some(HotbarImage::BowJumpBurst),
ToolKind::Debug(_) => Some(HotbarImage::SnakeArrow), ToolKind::Debug => Some(HotbarImage::SnakeArrow),
ToolKind::Sword(_) => Some(HotbarImage::SwordWhirlwind), ToolKind::Sword => Some(HotbarImage::SwordWhirlwind),
_ => None, _ => None,
}, },
_ => None, _ => None,

View File

@ -84,17 +84,17 @@ fn armor_desc(armor: &Armor, desc: &str) -> String {
fn tool_desc(tool: &Tool, desc: &str) -> String { fn tool_desc(tool: &Tool, desc: &str) -> String {
// TODO: localization // TODO: localization
let kind = match tool.kind { let kind = match tool.kind {
ToolKind::Sword(_) => "Sword", ToolKind::Sword => "Sword",
ToolKind::Axe(_) => "Axe", ToolKind::Axe => "Axe",
ToolKind::Hammer(_) => "Hammer", ToolKind::Hammer => "Hammer",
ToolKind::Bow(_) => "Bow", ToolKind::Bow => "Bow",
ToolKind::Dagger(_) => "Dagger", ToolKind::Dagger => "Dagger",
ToolKind::Staff(_) => "Staff", ToolKind::Staff => "Staff",
ToolKind::Sceptre(_) => "Sceptre", ToolKind::Sceptre => "Sceptre",
ToolKind::Shield(_) => "Shield", ToolKind::Shield => "Shield",
ToolKind::NpcWeapon(_) => "Npc Weapon", ToolKind::Unique(_) => "Unique",
ToolKind::Debug(_) => "Debug", ToolKind::Debug => "Debug",
ToolKind::Farming(_) => "Farming Tool", ToolKind::Farming => "Farming Tool",
ToolKind::Empty => "Empty", ToolKind::Empty => "Empty",
}; };
let power = tool.base_power(); let power = tool.base_power();

View File

@ -1024,7 +1024,7 @@ impl FigureMgr {
}, },
CharacterState::LeapMelee(s) => { CharacterState::LeapMelee(s) => {
let stage_progress = match active_tool_kind { let stage_progress = match active_tool_kind {
Some(ToolKind::Axe(_) | ToolKind::Hammer(_)) => { Some(ToolKind::Axe | ToolKind::Hammer) => {
let stage_time = s.timer.as_secs_f64(); let stage_time = s.timer.as_secs_f64();
match s.stage_section { match s.stage_section {
StageSection::Buildup => { StageSection::Buildup => {
@ -1064,7 +1064,7 @@ impl FigureMgr {
}, },
CharacterState::SpinMelee(s) => { CharacterState::SpinMelee(s) => {
let stage_progress = match active_tool_kind { let stage_progress = match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
let stage_time = s.timer.as_secs_f64(); let stage_time = s.timer.as_secs_f64();
match s.stage_section { match s.stage_section {
StageSection::Buildup => { StageSection::Buildup => {
@ -2439,7 +2439,7 @@ impl FigureMgr {
}, },
CharacterState::SpinMelee(s) => { CharacterState::SpinMelee(s) => {
let stage_progress = match active_tool_kind { let stage_progress = match active_tool_kind {
Some(ToolKind::Sword(_)) => { Some(ToolKind::Sword) => {
let stage_time = s.timer.as_secs_f64(); let stage_time = s.timer.as_secs_f64();
match s.stage_section { match s.stage_section {
StageSection::Buildup => { StageSection::Buildup => {
@ -2475,7 +2475,7 @@ impl FigureMgr {
}, },
CharacterState::LeapMelee(s) => { CharacterState::LeapMelee(s) => {
let stage_progress = match active_tool_kind { let stage_progress = match active_tool_kind {
Some(ToolKind::Axe(_) | ToolKind::Hammer(_)) => { Some(ToolKind::Axe | ToolKind::Hammer) => {
let stage_time = s.timer.as_secs_f64(); let stage_time = s.timer.as_secs_f64();
match s.stage_section { match s.stage_section {
StageSection::Buildup => { StageSection::Buildup => {