Addressed comments

This commit is contained in:
Snowram 2020-11-08 14:10:27 +01:00
parent fe977f0a6c
commit af346806de
2 changed files with 92 additions and 96 deletions

View File

@ -90,6 +90,11 @@ impl Tool {
Duration::from_millis(self.stats.equip_time_millis as u64) 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> { pub fn get_abilities(&self) -> Vec<CharacterAbility> {
use CharacterAbility::*; use CharacterAbility::*;
use ToolKind::*; use ToolKind::*;
@ -107,12 +112,9 @@ impl Tool {
knockback: 10.0, knockback: 10.0,
range: 4.0, range: 4.0,
angle: 30.0, angle: 30.0,
base_buildup_duration: Duration::from_millis(350) base_buildup_duration: self.adjusted_duration(350),
.div_f32(self.base_speed()), base_swing_duration: self.adjusted_duration(100),
base_swing_duration: Duration::from_millis(100) base_recover_duration: self.adjusted_duration(400),
.div_f32(self.base_speed()),
base_recover_duration: Duration::from_millis(400)
.div_f32(self.base_speed()),
forward_movement: 0.5, forward_movement: 0.5,
}, },
combo_melee::Stage { combo_melee::Stage {
@ -123,12 +125,9 @@ impl Tool {
knockback: 12.0, knockback: 12.0,
range: 3.5, range: 3.5,
angle: 180.0, angle: 180.0,
base_buildup_duration: Duration::from_millis(400) base_buildup_duration: self.adjusted_duration(400),
.div_f32(self.base_speed()), base_swing_duration: self.adjusted_duration(600),
base_swing_duration: Duration::from_millis(600) base_recover_duration: self.adjusted_duration(400),
.div_f32(self.base_speed()),
base_recover_duration: Duration::from_millis(400)
.div_f32(self.base_speed()),
forward_movement: 0.0, forward_movement: 0.0,
}, },
combo_melee::Stage { combo_melee::Stage {
@ -139,12 +138,9 @@ impl Tool {
knockback: 14.0, knockback: 14.0,
range: 6.0, range: 6.0,
angle: 10.0, angle: 10.0,
base_buildup_duration: Duration::from_millis(500) base_buildup_duration: self.adjusted_duration(500),
.div_f32(self.base_speed()), base_swing_duration: self.adjusted_duration(200),
base_swing_duration: Duration::from_millis(200) base_recover_duration: self.adjusted_duration(300),
.div_f32(self.base_speed()),
base_recover_duration: Duration::from_millis(300)
.div_f32(self.base_speed()),
forward_movement: 1.2, forward_movement: 1.2,
}, },
], ],
@ -165,17 +161,17 @@ impl Tool {
angle: 45.0, angle: 45.0,
energy_drain: 500, energy_drain: 500,
forward_speed: 4.0, forward_speed: 4.0,
buildup_duration: Duration::from_millis(250).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(250),
charge_duration: Duration::from_millis(600).div_f32(self.base_speed()), charge_duration: self.adjusted_duration(600),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(500),
infinite_charge: true, infinite_charge: true,
is_interruptible: true, is_interruptible: true,
}, },
SpinMelee { SpinMelee {
buildup_duration: Duration::from_millis(750).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(750),
swing_duration: Duration::from_millis(500).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(500),
recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(500),
base_damage: (140.0 * self.base_power()) as u32, base_damage: (140.0 * self.base_power()) as u32,
knockback: 10.0, knockback: 10.0,
range: 3.5, range: 3.5,
@ -198,9 +194,9 @@ impl Tool {
knockback: 8.0, knockback: 8.0,
range: 3.5, range: 3.5,
angle: 50.0, angle: 50.0,
base_buildup_duration: Duration::from_millis(350).div_f32(self.base_speed()), base_buildup_duration: self.adjusted_duration(350),
base_swing_duration: Duration::from_millis(75).div_f32(self.base_speed()), base_swing_duration: self.adjusted_duration(75),
base_recover_duration: Duration::from_millis(400).div_f32(self.base_speed()), base_recover_duration: self.adjusted_duration(400),
forward_movement: 0.5, forward_movement: 0.5,
}, },
combo_melee::Stage { combo_melee::Stage {
@ -211,9 +207,9 @@ impl Tool {
knockback: 12.0, knockback: 12.0,
range: 3.5, range: 3.5,
angle: 30.0, angle: 30.0,
base_buildup_duration: Duration::from_millis(500).div_f32(self.base_speed()), base_buildup_duration: self.adjusted_duration(500),
base_swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), base_swing_duration: self.adjusted_duration(100),
base_recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), base_recover_duration: self.adjusted_duration(500),
forward_movement: 0.25, forward_movement: 0.25,
}, },
], ],
@ -225,9 +221,9 @@ impl Tool {
is_interruptible: false, is_interruptible: false,
}, },
SpinMelee { SpinMelee {
buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(100),
swing_duration: Duration::from_millis(250).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(250),
recover_duration: Duration::from_millis(100).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(100),
base_damage: (60.0 * self.base_power()) as u32, base_damage: (60.0 * self.base_power()) as u32,
knockback: 0.0, knockback: 0.0,
range: 3.5, range: 3.5,
@ -240,10 +236,10 @@ impl Tool {
}, },
LeapMelee { LeapMelee {
energy_cost: 450, energy_cost: 450,
buildup_duration: Duration::from_millis(200).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(200),
movement_duration: Duration::from_millis(200).div_f32(self.base_speed()), movement_duration: Duration::from_millis(200),
swing_duration: Duration::from_millis(200).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(200),
recover_duration: Duration::from_millis(200).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(200),
base_damage: (240.0 * self.base_power()) as u32, base_damage: (240.0 * self.base_power()) as u32,
knockback: 12.0, knockback: 12.0,
range: 4.5, range: 4.5,
@ -262,9 +258,9 @@ impl Tool {
knockback: 0.0, knockback: 0.0,
range: 3.5, range: 3.5,
angle: 20.0, angle: 20.0,
base_buildup_duration: Duration::from_millis(600).div_f32(self.base_speed()), base_buildup_duration: self.adjusted_duration(600),
base_swing_duration: Duration::from_millis(60).div_f32(self.base_speed()), base_swing_duration: self.adjusted_duration(60),
base_recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), base_recover_duration: self.adjusted_duration(300),
forward_movement: 0.0, forward_movement: 0.0,
}], }],
initial_energy_gain: 0, initial_energy_gain: 0,
@ -283,16 +279,16 @@ impl Tool {
max_knockback: 60.0, max_knockback: 60.0,
range: 3.5, range: 3.5,
max_angle: 30.0, max_angle: 30.0,
charge_duration: Duration::from_millis(1200).div_f32(self.base_speed()), charge_duration: self.adjusted_duration(1200),
swing_duration: Duration::from_millis(200).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(200),
recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(300),
}, },
LeapMelee { LeapMelee {
energy_cost: 700, energy_cost: 700,
buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(100),
movement_duration: Duration::from_millis(800).div_f32(self.base_speed()), movement_duration: Duration::from_millis(800),
swing_duration: Duration::from_millis(150).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(150),
recover_duration: Duration::from_millis(200).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(200),
base_damage: (240.0 * self.base_power()) as u32, base_damage: (240.0 * self.base_power()) as u32,
knockback: 25.0, knockback: 25.0,
range: 4.5, range: 4.5,
@ -303,9 +299,9 @@ impl Tool {
], ],
Farming => vec![BasicMelee { Farming => vec![BasicMelee {
energy_cost: 1, energy_cost: 1,
buildup_duration: Duration::from_millis(600).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(600),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(150).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(150),
base_damage: (50.0 * self.base_power()) as u32, base_damage: (50.0 * self.base_power()) as u32,
knockback: 0.0, knockback: 0.0,
range: 3.5, range: 3.5,
@ -314,8 +310,8 @@ impl Tool {
Bow => vec![ Bow => vec![
BasicRanged { BasicRanged {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(200).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(200),
recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(300),
projectile: Projectile { projectile: Projectile {
hit_solid: vec![projectile::Effect::Stick], hit_solid: vec![projectile::Effect::Stick],
hit_entity: vec![ hit_entity: vec![
@ -356,9 +352,9 @@ impl Tool {
max_damage: (200.0 * self.base_power()) as u32, max_damage: (200.0 * self.base_power()) as u32,
initial_knockback: 10.0, initial_knockback: 10.0,
max_knockback: 20.0, max_knockback: 20.0,
buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(100),
charge_duration: Duration::from_millis(1500).div_f32(self.base_speed()), charge_duration: self.adjusted_duration(1500),
recover_duration: Duration::from_millis(500).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(500),
projectile_body: Body::Object(object::Body::MultiArrow), projectile_body: Body::Object(object::Body::MultiArrow),
projectile_light: None, projectile_light: None,
projectile_gravity: Some(Gravity(0.2)), projectile_gravity: Some(Gravity(0.2)),
@ -367,10 +363,10 @@ impl Tool {
}, },
RepeaterRanged { RepeaterRanged {
energy_cost: 450, energy_cost: 450,
movement_duration: Duration::from_millis(300).div_f32(self.base_speed()), movement_duration: Duration::from_millis(300),
buildup_duration: Duration::from_millis(200).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(200),
shoot_duration: Duration::from_millis(200).div_f32(self.base_speed()), shoot_duration: self.adjusted_duration(200),
recover_duration: Duration::from_millis(800).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(800),
leap: Some(5.0), leap: Some(5.0),
projectile: Projectile { projectile: Projectile {
hit_solid: vec![projectile::Effect::Stick], hit_solid: vec![projectile::Effect::Stick],
@ -407,9 +403,9 @@ impl Tool {
], ],
Dagger => vec![BasicMelee { Dagger => vec![BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(100),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(300),
base_damage: (50.0 * self.base_power()) as u32, base_damage: (50.0 * self.base_power()) as u32,
knockback: 0.0, knockback: 0.0,
range: 3.5, range: 3.5,
@ -417,12 +413,12 @@ impl Tool {
}], }],
Sceptre => vec![ Sceptre => vec![
BasicBeam { BasicBeam {
buildup_duration: Duration::from_millis(250).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(250),
recover_duration: Duration::from_millis(250).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(250),
beam_duration: Duration::from_secs(1), beam_duration: Duration::from_secs(1),
base_hps: (60.0 * self.base_power()) as u32, base_hps: (60.0 * self.base_power()) as u32,
base_dps: (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, range: 25.0,
max_angle: 1.0, max_angle: 1.0,
lifesteal_eff: 0.20, lifesteal_eff: 0.20,
@ -432,8 +428,8 @@ impl Tool {
}, },
BasicRanged { BasicRanged {
energy_cost: 800, energy_cost: 800,
buildup_duration: Duration::from_millis(800).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(800),
recover_duration: Duration::from_millis(50).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(50),
projectile: Projectile { projectile: Projectile {
hit_solid: vec![ hit_solid: vec![
projectile::Effect::Explode(Explosion { projectile::Effect::Explode(Explosion {
@ -498,8 +494,8 @@ impl Tool {
Staff => vec![ Staff => vec![
BasicRanged { BasicRanged {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(500).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(500),
recover_duration: Duration::from_millis(350).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(350),
projectile: Projectile { projectile: Projectile {
hit_solid: vec![ hit_solid: vec![
projectile::Effect::Explode(Explosion { projectile::Effect::Explode(Explosion {
@ -543,12 +539,12 @@ impl Tool {
can_continue: true, can_continue: true,
}, },
BasicBeam { BasicBeam {
buildup_duration: Duration::from_millis(250).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(250),
recover_duration: Duration::from_millis(250).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(250),
beam_duration: Duration::from_millis(500).div_f32(self.base_speed()), beam_duration: self.adjusted_duration(500),
base_hps: 0, base_hps: 0,
base_dps: (150.0 * self.base_power()) as u32, base_dps: (150.0 * self.base_power()) as u32,
tick_rate: 3.0, tick_rate: 3.0 * self.base_speed(),
range: 15.0, range: 15.0,
max_angle: 22.5, max_angle: 22.5,
lifesteal_eff: 0.0, lifesteal_eff: 0.0,
@ -558,9 +554,9 @@ impl Tool {
}, },
Shockwave { Shockwave {
energy_cost: 600, energy_cost: 600,
buildup_duration: Duration::from_millis(700).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(700),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(300),
damage: (200.0 * self.base_power()) as u32, damage: (200.0 * self.base_power()) as u32,
knockback: Knockback::Away(25.0), knockback: Knockback::Away(25.0),
shockwave_angle: 360.0, shockwave_angle: 360.0,
@ -574,9 +570,9 @@ impl Tool {
Shield => vec![ Shield => vec![
BasicMelee { BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(100).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(100),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(300).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(300),
base_damage: (40.0 * self.base_power()) as u32, base_damage: (40.0 * self.base_power()) as u32,
knockback: 0.0, knockback: 0.0,
range: 3.0, range: 3.0,
@ -587,9 +583,9 @@ impl Tool {
Unique(StoneGolemFist) => vec![ Unique(StoneGolemFist) => vec![
BasicMelee { BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(400).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(400),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(250).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(250),
knockback: 25.0, knockback: 25.0,
base_damage: 200, base_damage: 200,
range: 5.0, range: 5.0,
@ -597,9 +593,9 @@ impl Tool {
}, },
Shockwave { Shockwave {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(500).div_f32(self.base_speed()), buildup_duration: self.adjusted_duration(500),
swing_duration: Duration::from_millis(200).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(200),
recover_duration: Duration::from_millis(800).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(800),
damage: 500, damage: 500,
knockback: Knockback::TowardsUp(40.0), knockback: Knockback::TowardsUp(40.0),
shockwave_angle: 90.0, shockwave_angle: 90.0,
@ -612,9 +608,9 @@ impl Tool {
], ],
Unique(BeastClaws) => vec![BasicMelee { Unique(BeastClaws) => vec![BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(250).div_f32(self.base_speed(), buildup_duration: self.adjusted_duration(250),
swing_duration: Duration::from_millis(250).div_f32(self.base_speed(), swing_duration: self.adjusted_duration(250),
recover_duration: Duration::from_millis(250).div_f32(self.base_speed(), recover_duration: self.adjusted_duration(250),
knockback: 25.0, knockback: 25.0,
base_damage: 200, base_damage: 200,
range: 5.0, range: 5.0,
@ -622,17 +618,17 @@ impl Tool {
}], }],
Debug => vec![ Debug => vec![
CharacterAbility::Boost { CharacterAbility::Boost {
movement_duration: Duration::from_millis(50).div_f32(self.base_speed()), movement_duration: Duration::from_millis(50),
only_up: false, only_up: false,
}, },
CharacterAbility::Boost { CharacterAbility::Boost {
movement_duration: Duration::from_millis(50).div_f32(self.base_speed()), movement_duration: Duration::from_millis(50),
only_up: true, only_up: true,
}, },
BasicRanged { BasicRanged {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(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 { projectile: Projectile {
hit_solid: vec![projectile::Effect::Stick], hit_solid: vec![projectile::Effect::Stick],
hit_entity: vec![projectile::Effect::Stick, projectile::Effect::Possess], hit_entity: vec![projectile::Effect::Stick, projectile::Effect::Possess],
@ -653,8 +649,8 @@ impl Tool {
Empty => vec![BasicMelee { Empty => vec![BasicMelee {
energy_cost: 0, energy_cost: 0,
buildup_duration: Duration::from_millis(0), buildup_duration: Duration::from_millis(0),
swing_duration: Duration::from_millis(100).div_f32(self.base_speed()), swing_duration: self.adjusted_duration(100),
recover_duration: Duration::from_millis(900).div_f32(self.base_speed()), recover_duration: self.adjusted_duration(900),
base_damage: 20, base_damage: 20,
knockback: 0.0, knockback: 0.0,
range: 3.5, range: 3.5,

View File

@ -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>", "{}\n\nPower: {:0.1}\n\nSpeed: {:0.1}\n\n{}\n\n<Right-Click to use>",
kind, kind,
power * 10.0, power * 10.0,
speed * 10.0, speed,
desc desc
) )
} else { } 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>", "{}\n\nPower: {:0.1}\n\nSpeed: {:0.1}\n\n<Right-Click to use>",
kind, kind,
power * 10.0, power * 10.0,
speed * 10.0 speed
) )
} }
} }