damage per head (#32)
This commit is contained in:
@@ -20,7 +20,7 @@ use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Component)]
|
||||
pub struct Projectile {
|
||||
pub damage: u32,
|
||||
pub owner_head: usize,
|
||||
}
|
||||
|
||||
#[derive(Event, Reflect)]
|
||||
@@ -93,6 +93,7 @@ fn enemy_hit(
|
||||
mut collision_event_reader: EventReader<CollisionStarted>,
|
||||
query_shot: Query<&Projectile>,
|
||||
query_npc: Query<&EnemySpawn>,
|
||||
heads_db: Res<HeadsDatabase>,
|
||||
) {
|
||||
for CollisionStarted(e1, e2) in collision_event_reader.read() {
|
||||
if !query_shot.contains(*e1) && !query_shot.contains(*e2) {
|
||||
@@ -108,8 +109,10 @@ fn enemy_hit(
|
||||
(*e2, query_shot.get(*e1))
|
||||
};
|
||||
|
||||
let damage = projectile.map(|p| p.damage).unwrap_or_default();
|
||||
commands.entity(enemy_entity).trigger(Hit { damage });
|
||||
if let Ok(head) = projectile.map(|p| p.owner_head) {
|
||||
let damage = heads_db.head_stats(head).damage;
|
||||
commands.entity(enemy_entity).trigger(Hit { damage });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user