From 2eebc29e212c472524d5c2c56ab86d84e792e40d Mon Sep 17 00:00:00 2001 From: Snowram <robin.gilh@gmail.com> Date: Sun, 8 Nov 2020 14:10:27 +0100 Subject: [PATCH] Addressed comments --- common/src/comp/inventory/item/tool.rs | 184 ++++++++++++------------- voxygen/src/hud/util.rs | 4 +- 2 files changed, 92 insertions(+), 96 deletions(-) diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs index b56032b2e6..6099cbfef5 100644 --- a/common/src/comp/inventory/item/tool.rs +++ b/common/src/comp/inventory/item/tool.rs @@ -90,6 +90,11 @@ impl Tool { Duration::from_millis(self.stats.equip_time_millis as u64) } + /// Converts milliseconds to a `Duration` adjusted by `base_speed()` + pub fn adjusted_duration(&self, millis: u64) -> Duration { + Duration::from_millis(millis).div_f32(self.base_speed()) + } + pub fn get_abilities(&self) -> Vec<CharacterAbility> { use CharacterAbility::*; use ToolKind::*; @@ -107,12 +112,9 @@ impl Tool { knockback: 10.0, range: 4.0, angle: 30.0, - base_buildup_duration: Duration::from_millis(350) - .div_f32(self.base_speed()), - base_swing_duration: Duration::from_millis(100) - .div_f32(self.base_speed()), - base_recover_duration: Duration::from_millis(400) - .div_f32(self.base_speed()), + base_buildup_duration: self.adjusted_duration(350), + base_swing_duration: self.adjusted_duration(100), + base_recover_duration: self.adjusted_duration(400), forward_movement: 0.5, }, combo_melee::Stage { @@ -123,12 +125,9 @@ impl Tool { knockback: 12.0, range: 3.5, angle: 180.0, - base_buildup_duration: Duration::from_millis(400) - .div_f32(self.base_speed()), - base_swing_duration: Duration::from_millis(600) - .div_f32(self.base_speed()), - base_recover_duration: Duration::from_millis(400) - .div_f32(self.base_speed()), + base_buildup_duration: self.adjusted_duration(400), + base_swing_duration: self.adjusted_duration(600), + base_recover_duration: self.adjusted_duration(400), forward_movement: 0.0, }, combo_melee::Stage { @@ -139,12 +138,9 @@ impl Tool { knockback: 14.0, range: 6.0, angle: 10.0, - base_buildup_duration: Duration::from_millis(500) - .div_f32(self.base_speed()), - base_swing_duration: Duration::from_millis(200) - .div_f32(self.base_speed()), - base_recover_duration: Duration::from_millis(300) - .div_f32(self.base_speed()), + base_buildup_duration: self.adjusted_duration(500), + base_swing_duration: self.adjusted_duration(200), + base_recover_duration: self.adjusted_duration(300), forward_movement: 1.2, }, ], @@ -165,17 +161,17 @@ impl Tool { angle: 45.0, energy_drain: 500, forward_speed: 4.0, - buildup_duration: Duration::from_millis(250).div_f32(self.base_speed()), - charge_duration: Duration::from_millis(600).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(250), + charge_duration: self.adjusted_duration(600), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(500), infinite_charge: true, is_interruptible: true, }, SpinMelee { - buildup_duration: Duration::from_millis(750).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(500).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(750), + swing_duration: self.adjusted_duration(500), + recover_duration: self.adjusted_duration(500), base_damage: (140.0 * self.base_power()) as u32, knockback: 10.0, range: 3.5, @@ -198,9 +194,9 @@ impl Tool { knockback: 8.0, range: 3.5, angle: 50.0, - base_buildup_duration: Duration::from_millis(350).div_f32(self.base_speed()), - base_swing_duration: Duration::from_millis(75).div_f32(self.base_speed()), - base_recover_duration: Duration::from_millis(400).div_f32(self.base_speed()), + base_buildup_duration: self.adjusted_duration(350), + base_swing_duration: self.adjusted_duration(75), + base_recover_duration: self.adjusted_duration(400), forward_movement: 0.5, }, combo_melee::Stage { @@ -211,9 +207,9 @@ impl Tool { knockback: 12.0, range: 3.5, angle: 30.0, - base_buildup_duration: Duration::from_millis(500).div_f32(self.base_speed()), - base_swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - base_recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), + base_buildup_duration: self.adjusted_duration(500), + base_swing_duration: self.adjusted_duration(100), + base_recover_duration: self.adjusted_duration(500), forward_movement: 0.25, }, ], @@ -225,9 +221,9 @@ impl Tool { is_interruptible: false, }, SpinMelee { - buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(250).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(100).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(100), + swing_duration: self.adjusted_duration(250), + recover_duration: self.adjusted_duration(100), base_damage: (60.0 * self.base_power()) as u32, knockback: 0.0, range: 3.5, @@ -240,10 +236,10 @@ impl Tool { }, LeapMelee { energy_cost: 450, - buildup_duration: Duration::from_millis(200).div_f32(self.base_speed()), - movement_duration: Duration::from_millis(200).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(200).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(200).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(200), + movement_duration: Duration::from_millis(200), + swing_duration: self.adjusted_duration(200), + recover_duration: self.adjusted_duration(200), base_damage: (240.0 * self.base_power()) as u32, knockback: 12.0, range: 4.5, @@ -262,9 +258,9 @@ impl Tool { knockback: 0.0, range: 3.5, angle: 20.0, - base_buildup_duration: Duration::from_millis(600).div_f32(self.base_speed()), - base_swing_duration: Duration::from_millis(60).div_f32(self.base_speed()), - base_recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), + base_buildup_duration: self.adjusted_duration(600), + base_swing_duration: self.adjusted_duration(60), + base_recover_duration: self.adjusted_duration(300), forward_movement: 0.0, }], initial_energy_gain: 0, @@ -283,16 +279,16 @@ impl Tool { max_knockback: 60.0, range: 3.5, max_angle: 30.0, - charge_duration: Duration::from_millis(1200).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(200).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), + charge_duration: self.adjusted_duration(1200), + swing_duration: self.adjusted_duration(200), + recover_duration: self.adjusted_duration(300), }, LeapMelee { energy_cost: 700, - buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), - movement_duration: Duration::from_millis(800).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(150).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(200).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(100), + movement_duration: Duration::from_millis(800), + swing_duration: self.adjusted_duration(150), + recover_duration: self.adjusted_duration(200), base_damage: (240.0 * self.base_power()) as u32, knockback: 25.0, range: 4.5, @@ -303,9 +299,9 @@ impl Tool { ], Farming => vec![BasicMelee { energy_cost: 1, - buildup_duration: Duration::from_millis(600).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(150).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(600), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(150), base_damage: (50.0 * self.base_power()) as u32, knockback: 0.0, range: 3.5, @@ -314,8 +310,8 @@ impl Tool { Bow => vec![ BasicRanged { energy_cost: 0, - buildup_duration: Duration::from_millis(200).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(200), + recover_duration: self.adjusted_duration(300), projectile: Projectile { hit_solid: vec![projectile::Effect::Stick], hit_entity: vec![ @@ -356,9 +352,9 @@ impl Tool { max_damage: (200.0 * self.base_power()) as u32, initial_knockback: 10.0, max_knockback: 20.0, - buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), - charge_duration: Duration::from_millis(1500).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(100), + charge_duration: self.adjusted_duration(1500), + recover_duration: self.adjusted_duration(500), projectile_body: Body::Object(object::Body::MultiArrow), projectile_light: None, projectile_gravity: Some(Gravity(0.2)), @@ -367,10 +363,10 @@ impl Tool { }, RepeaterRanged { energy_cost: 450, - movement_duration: Duration::from_millis(300).div_f32(self.base_speed()), - buildup_duration: Duration::from_millis(200).div_f32(self.base_speed()), - shoot_duration: Duration::from_millis(200).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(800).div_f32(self.base_speed()), + movement_duration: Duration::from_millis(300), + buildup_duration: self.adjusted_duration(200), + shoot_duration: self.adjusted_duration(200), + recover_duration: self.adjusted_duration(800), leap: Some(5.0), projectile: Projectile { hit_solid: vec![projectile::Effect::Stick], @@ -407,9 +403,9 @@ impl Tool { ], Dagger => vec![BasicMelee { energy_cost: 0, - buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(100), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(300), base_damage: (50.0 * self.base_power()) as u32, knockback: 0.0, range: 3.5, @@ -417,12 +413,12 @@ impl Tool { }], Sceptre => vec![ BasicBeam { - buildup_duration: Duration::from_millis(250).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(250).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(250), + recover_duration: self.adjusted_duration(250), beam_duration: Duration::from_secs(1), base_hps: (60.0 * self.base_power()) as u32, base_dps: (60.0 * self.base_power()) as u32, - tick_rate: 2.0, + tick_rate: 2.0 * self.base_speed(), range: 25.0, max_angle: 1.0, lifesteal_eff: 0.20, @@ -432,8 +428,8 @@ impl Tool { }, BasicRanged { energy_cost: 800, - buildup_duration: Duration::from_millis(800).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(50).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(800), + recover_duration: self.adjusted_duration(50), projectile: Projectile { hit_solid: vec![ projectile::Effect::Explode(Explosion { @@ -498,8 +494,8 @@ impl Tool { Staff => vec![ BasicRanged { energy_cost: 0, - buildup_duration: Duration::from_millis(500).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(350).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(500), + recover_duration: self.adjusted_duration(350), projectile: Projectile { hit_solid: vec![ projectile::Effect::Explode(Explosion { @@ -543,12 +539,12 @@ impl Tool { can_continue: true, }, BasicBeam { - buildup_duration: Duration::from_millis(250).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(250).div_f32(self.base_speed()), - beam_duration: Duration::from_millis(500).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(250), + recover_duration: self.adjusted_duration(250), + beam_duration: self.adjusted_duration(500), base_hps: 0, base_dps: (150.0 * self.base_power()) as u32, - tick_rate: 3.0, + tick_rate: 3.0 * self.base_speed(), range: 15.0, max_angle: 22.5, lifesteal_eff: 0.0, @@ -558,9 +554,9 @@ impl Tool { }, Shockwave { energy_cost: 600, - buildup_duration: Duration::from_millis(700).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(700), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(300), damage: (200.0 * self.base_power()) as u32, knockback: Knockback::Away(25.0), shockwave_angle: 360.0, @@ -574,9 +570,9 @@ impl Tool { Shield => vec![ BasicMelee { energy_cost: 0, - buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(100), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(300), base_damage: (40.0 * self.base_power()) as u32, knockback: 0.0, range: 3.0, @@ -587,9 +583,9 @@ impl Tool { Unique(StoneGolemFist) => vec![ BasicMelee { energy_cost: 0, - buildup_duration: Duration::from_millis(400).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(250).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(400), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(250), knockback: 25.0, base_damage: 200, range: 5.0, @@ -597,9 +593,9 @@ impl Tool { }, Shockwave { energy_cost: 0, - buildup_duration: Duration::from_millis(500).div_f32(self.base_speed()), - swing_duration: Duration::from_millis(200).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(800).div_f32(self.base_speed()), + buildup_duration: self.adjusted_duration(500), + swing_duration: self.adjusted_duration(200), + recover_duration: self.adjusted_duration(800), damage: 500, knockback: Knockback::TowardsUp(40.0), shockwave_angle: 90.0, @@ -612,9 +608,9 @@ impl Tool { ], Unique(BeastClaws) => vec![BasicMelee { energy_cost: 0, - buildup_duration: Duration::from_millis(250).div_f32(self.base_speed(), - swing_duration: Duration::from_millis(250).div_f32(self.base_speed(), - recover_duration: Duration::from_millis(250).div_f32(self.base_speed(), + buildup_duration: self.adjusted_duration(250), + swing_duration: self.adjusted_duration(250), + recover_duration: self.adjusted_duration(250), knockback: 25.0, base_damage: 200, range: 5.0, @@ -622,17 +618,17 @@ impl Tool { }], Debug => vec![ CharacterAbility::Boost { - movement_duration: Duration::from_millis(50).div_f32(self.base_speed()), + movement_duration: Duration::from_millis(50), only_up: false, }, CharacterAbility::Boost { - movement_duration: Duration::from_millis(50).div_f32(self.base_speed()), + movement_duration: Duration::from_millis(50), only_up: true, }, BasicRanged { energy_cost: 0, buildup_duration: Duration::from_millis(0), - recover_duration: Duration::from_millis(10).div_f32(self.base_speed()), + recover_duration: self.adjusted_duration(10), projectile: Projectile { hit_solid: vec![projectile::Effect::Stick], hit_entity: vec![projectile::Effect::Stick, projectile::Effect::Possess], @@ -653,8 +649,8 @@ impl Tool { Empty => vec![BasicMelee { energy_cost: 0, buildup_duration: Duration::from_millis(0), - swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), - recover_duration: Duration::from_millis(900).div_f32(self.base_speed()), + swing_duration: self.adjusted_duration(100), + recover_duration: self.adjusted_duration(900), base_damage: 20, knockback: 0.0, range: 3.5, diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs index aff752e1fc..268a628c48 100644 --- a/voxygen/src/hud/util.rs +++ b/voxygen/src/hud/util.rs @@ -105,7 +105,7 @@ fn tool_desc(tool: &Tool, desc: &str) -> String { "{}\n\nPower: {:0.1}\n\nSpeed: {:0.1}\n\n{}\n\n<Right-Click to use>", kind, power * 10.0, - speed * 10.0, + speed, desc ) } else { @@ -113,7 +113,7 @@ fn tool_desc(tool: &Tool, desc: &str) -> String { "{}\n\nPower: {:0.1}\n\nSpeed: {:0.1}\n\n<Right-Click to use>", kind, power * 10.0, - speed * 10.0 + speed ) } }