feat: have the attack projectile actually use the attack's velocity
This commit is contained in:
parent
4221370f2d
commit
96ccdcfc20
|
@ -66,6 +66,7 @@ fn main() {
|
|||
player_movement,
|
||||
player_regen,
|
||||
player_attack,
|
||||
attack_movement,
|
||||
enemy_movement,
|
||||
change_enemy_color,
|
||||
),
|
||||
|
|
|
@ -78,19 +78,12 @@ pub fn player_movement(
|
|||
#[allow(clippy::type_complexity)]
|
||||
pub fn player_attack(
|
||||
keys: Res<ButtonInput<KeyCode>>,
|
||||
mut set: ParamSet<(
|
||||
Query<&mut Transform, With<Attack>>,
|
||||
Query<&Transform, With<Player>>,
|
||||
)>,
|
||||
mut player_query: Query<&mut Player>,
|
||||
mut player_query: Query<(&Transform, &mut Player), With<Player>>,
|
||||
mut commands: Commands,
|
||||
asset_server: Res<AssetServer>,
|
||||
) {
|
||||
let mut player = player_query.single_mut();
|
||||
|
||||
for player_transform in set.p1().iter_mut() {
|
||||
let attack_position =
|
||||
player_transform.translation + (player_transform.rotation * Vec3::Y * 100.);
|
||||
let (transform, mut player) = player_query.single_mut();
|
||||
let attack_position = transform.translation + (transform.rotation * Vec3::Y * 100.);
|
||||
|
||||
if keys.just_pressed(KeyCode::Enter) {
|
||||
commands
|
||||
|
@ -99,22 +92,25 @@ pub fn player_attack(
|
|||
transform: Transform {
|
||||
scale: Vec3::splat(0.3),
|
||||
translation: attack_position,
|
||||
rotation: player_transform.rotation,
|
||||
rotation: transform.rotation,
|
||||
},
|
||||
..default()
|
||||
})
|
||||
.insert(Attack {
|
||||
velocity: 10.,
|
||||
velocity: 20.,
|
||||
damage: 20.,
|
||||
});
|
||||
|
||||
player.mana -= 1.;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for mut attack_transform in set.p0().iter_mut() {
|
||||
let direction = attack_transform.rotation * Vec3::Y;
|
||||
attack_transform.translation += direction * 20.;
|
||||
pub fn attack_movement(mut attack_query: Query<(&mut Transform, Option<&Attack>), With<Attack>>) {
|
||||
for (mut transform, attack) in attack_query.iter_mut() {
|
||||
if let Some(attack) = attack {
|
||||
let direction = transform.rotation * Vec3::Y;
|
||||
transform.translation += direction * attack.velocity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue