diff --git a/common/systems/src/projectile.rs b/common/systems/src/projectile.rs index 9d7839b8f4..096f0f512d 100644 --- a/common/systems/src/projectile.rs +++ b/common/systems/src/projectile.rs @@ -61,11 +61,11 @@ impl<'a> System<'a> for Sys { let mut server_emitter = read_data.server_bus.emitter(); // Attacks - 'projectile_loop: for (entity, pos, physics, ori, mut projectile) in ( + 'projectile_loop: for (entity, pos, physics, vel, mut projectile) in ( &read_data.entities, &read_data.positions, &read_data.physics_states, - &mut orientations, + &read_data.velocities, &mut projectiles, ) .join() @@ -111,7 +111,10 @@ impl<'a> System<'a> for Sys { .uid_allocator .retrieve_entity_internal(other.into()) { - if let Some(pos) = read_data.positions.get(target) { + if let (Some(pos), Some(dir)) = ( + read_data.positions.get(target), + Dir::from_unnormalized(vel.0), + ) { let owner_entity = projectile.owner.and_then(|u| { read_data.uid_allocator.retrieve_entity_internal(u.into()) }); @@ -133,9 +136,7 @@ impl<'a> System<'a> for Sys { stats: read_data.stats.get(target), health: read_data.healths.get(target), pos: pos.0, - // TODO: Let someone smarter figure this out - // ori: orientations.get(target), - ori: None, + ori: orientations.get(target), char_state: read_data.character_states.get(target), }; @@ -156,7 +157,7 @@ impl<'a> System<'a> for Sys { target_group, attacker_info, target_info, - ori.look_dir(), + dir, false, 1.0, AttackSource::Projectile, @@ -222,12 +223,10 @@ impl<'a> System<'a> for Sys { if projectile_vanished { continue 'projectile_loop; } - } else if let Some(dir) = read_data - .velocities - .get(entity) - .and_then(|vel| Dir::from_unnormalized(vel.0)) - { - *ori = dir.into(); + } else if let Some(ori) = orientations.get_mut(entity) { + if let Some(dir) = Dir::from_unnormalized(vel.0) { + *ori = dir.into(); + } } if projectile.time_left == Duration::default() { diff --git a/voxygen/src/audio/sfx/mod.rs b/voxygen/src/audio/sfx/mod.rs index dd955da89d..fe2d0ceb7c 100644 --- a/voxygen/src/audio/sfx/mod.rs +++ b/voxygen/src/audio/sfx/mod.rs @@ -417,20 +417,21 @@ impl SfxMgr { audio.play_sfx(file_ref, *pos, None); }, Outcome::Block { pos, parry, .. } => { - // TODO: Get audio for blocking and parrying - let file_ref_block = vec![ + let block_sfx = vec![ "voxygen.audio.sfx.character.block_1", "voxygen.audio.sfx.character.block_2", "voxygen.audio.sfx.character.block_3", - ][rand::thread_rng().gen_range(1..3)]; - let file_ref_parry = vec![ + ]; + let parry_sfx = vec![ "voxygen.audio.sfx.character.parry_1", "voxygen.audio.sfx.character.parry_2", - ][rand::thread_rng().gen_range(1..2)]; + ]; if *parry { - audio.play_sfx(file_ref_parry, *pos, Some(2.0)); + let file_ref = parry_sfx[rand::thread_rng().gen_range(1..parry_sfx.len())]; + audio.play_sfx(file_ref, *pos, Some(2.0)); } else { - audio.play_sfx(file_ref_block, *pos, Some(2.0)); + let file_ref = block_sfx[rand::thread_rng().gen_range(1..block_sfx.len())]; + audio.play_sfx(file_ref, *pos, Some(2.0)); } }, Outcome::ExpChange { .. } diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 53b0358a6f..48ee2b7816 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -1348,7 +1348,6 @@ impl Hud { .for_each(|f| f.timer -= dt.as_secs_f32()); self.floaters.block_floaters.retain(|f| f.timer > 0_f32); if let Some(uid) = uids.get(me) { - use inline_tweak::tweak; for floater in self .floaters .block_floaters @@ -1378,18 +1377,15 @@ impl Hud { .font_id(self.fonts.cyri.conrod_id) .color(Color::Rgba(0.0, 0.0, 0.0, fade)) .x_y( - ui_widgets.win_w * (tweak!(0.0)), - ui_widgets.win_h * (tweak!(-0.3)) + y - tweak!(3.0), + ui_widgets.win_w * (0.0), + ui_widgets.win_h * (-0.3) + y - 3.0, ) .set(player_sct_bg_id, ui_widgets); Text::new(&i18n.get("hud.sct.block")) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) - .color(Color::Rgba(tweak!(0.69), tweak!(0.82), tweak!(0.88), fade)) - .x_y( - ui_widgets.win_w * (tweak!(0.0)), - ui_widgets.win_h * (tweak!(-0.3)) + y, - ) + .color(Color::Rgba(0.69, 0.82, 0.88, fade)) + .x_y(ui_widgets.win_w * 0.0, ui_widgets.win_h * -0.3 + y) .set(player_sct_id, ui_widgets); } }