simple missile ability and sound (#38)

This commit is contained in:
extrawurst
2025-04-27 23:03:18 +02:00
committed by GitHub
parent 70b3faca8d
commit c9f17e4130
7 changed files with 236 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
mod arrow;
mod gun;
mod missile;
mod thrown;
use crate::{
@@ -31,6 +32,7 @@ pub enum HeadAbility {
Arrow,
Thrown,
Gun,
Missile,
}
#[derive(Debug, Reflect, Clone, Copy)]
@@ -69,11 +71,14 @@ pub struct TriggerGun(pub TriggerData);
pub struct TriggerArrow(pub TriggerData);
#[derive(Event, Reflect)]
pub struct TriggerThrow(pub TriggerData);
#[derive(Event, Reflect)]
pub struct TriggerMissile(pub TriggerData);
pub fn plugin(app: &mut App) {
app.add_plugins(gun::plugin);
app.add_plugins(thrown::plugin);
app.add_plugins(arrow::plugin);
app.add_plugins(missile::plugin);
global_observer!(app, on_trigger_state);
}
@@ -132,6 +137,7 @@ fn on_trigger_state(
match ability {
HeadAbility::Thrown => commands.trigger(TriggerThrow(trigger_state)),
HeadAbility::Gun => commands.trigger(TriggerGun(trigger_state)),
HeadAbility::Missile => commands.trigger(TriggerMissile(trigger_state)),
HeadAbility::Arrow => commands.trigger(TriggerArrow(trigger_state)),
HeadAbility::None => (),
};