Simple ai shooting PoC (#23)

This commit is contained in:
extrawurst
2025-04-04 23:00:15 +02:00
committed by GitHub
parent 145c30663e
commit e49373061e
11 changed files with 258 additions and 120 deletions

View File

@@ -1,14 +1,7 @@
use super::TriggerThrow;
use crate::{
GameState,
aim::AimState,
billboards::Billboard,
hitpoints::Hit,
loading_assets::GameAssets,
physics_layers::GameLayer,
player::{Player, PlayerRig},
sounds::PlaySound,
utils::sprite_3d_animation::AnimationTimer,
GameState, billboards::Billboard, hitpoints::Hit, loading_assets::GameAssets,
physics_layers::GameLayer, sounds::PlaySound, utils::sprite_3d_animation::AnimationTimer,
};
use avian3d::prelude::*;
use bevy::{pbr::NotShadowCaster, prelude::*};
@@ -85,8 +78,7 @@ fn setup(mut commands: Commands, assets: Res<GameAssets>, mut sprite_params: Spr
fn on_trigger_state(
trigger: Trigger<TriggerThrow>,
mut commands: Commands,
aim: Res<AimState>,
target_transform: Query<&Transform, (Without<Player>, Without<PlayerRig>)>,
query_transform: Query<&Transform>,
assets: Res<GameAssets>,
) {
let state = trigger.event().0;
@@ -95,8 +87,8 @@ fn on_trigger_state(
const SPEED: f32 = 35.;
let vel = if let Some(target) = aim.target {
let t = target_transform
let vel = if let Some(target) = state.target {
let t = query_transform
.get(target)
.expect("target must have transform");
@@ -122,7 +114,7 @@ fn on_trigger_state(
Collider::sphere(0.5),
CollisionLayers::new(
LayerMask(GameLayer::Projectile.to_bits()),
LayerMask(GameLayer::Npc.to_bits() | GameLayer::Level.to_bits()),
LayerMask(state.target_layer.to_bits() | GameLayer::Level.to_bits()),
),
RigidBody::Dynamic,
Mass(0.01),