mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-17 02:12:35 -06:00
chore: remove LevelTiming resource
This commit is contained in:
@@ -141,35 +141,6 @@ impl Default for MovementModifiers {
|
||||
}
|
||||
}
|
||||
|
||||
/// Level-dependent timing configuration
|
||||
#[derive(Resource, Debug, Clone, Copy)]
|
||||
pub struct LevelTiming {
|
||||
/// Duration of energizer effect in seconds
|
||||
pub energizer_duration: f32,
|
||||
/// Freeze duration at spawn/ready in seconds
|
||||
pub spawn_freeze_duration: f32,
|
||||
/// When to start flashing relative to energizer end (seconds)
|
||||
pub energizer_flash_threshold: f32,
|
||||
}
|
||||
|
||||
impl Default for LevelTiming {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
energizer_duration: 6.0,
|
||||
spawn_freeze_duration: 1.5,
|
||||
energizer_flash_threshold: 2.0,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl LevelTiming {
|
||||
/// Returns timing configuration for a given level.
|
||||
pub fn for_level(_level: u32) -> Self {
|
||||
// Placeholder: tune per the Pac-Man Dossier tables
|
||||
Self::default()
|
||||
}
|
||||
}
|
||||
|
||||
/// Tag component for entities that should be frozen during startup
|
||||
#[derive(Component, Debug, Clone, Copy)]
|
||||
pub struct Frozen;
|
||||
|
||||
@@ -7,7 +7,7 @@ use bevy_ecs::{
|
||||
|
||||
use crate::{
|
||||
events::GameEvent,
|
||||
systems::{AudioEvent, EntityType, GhostCollider, ItemCollider, LevelTiming, PacmanCollider, ScoreResource, Vulnerable},
|
||||
systems::{AudioEvent, EntityType, GhostCollider, ItemCollider, PacmanCollider, ScoreResource, Vulnerable},
|
||||
};
|
||||
|
||||
/// Determines if a collision between two entity types should be handled by the item system.
|
||||
@@ -29,7 +29,6 @@ pub fn item_system(
|
||||
item_query: Query<(Entity, &EntityType), With<ItemCollider>>,
|
||||
ghost_query: Query<Entity, With<GhostCollider>>,
|
||||
mut events: EventWriter<AudioEvent>,
|
||||
level_timing: Res<LevelTiming>,
|
||||
) {
|
||||
for event in collision_events.read() {
|
||||
if let GameEvent::Collision(entity1, entity2) = event {
|
||||
@@ -58,7 +57,7 @@ pub fn item_system(
|
||||
// Make ghosts vulnerable when power pellet is collected
|
||||
if *entity_type == EntityType::PowerPellet {
|
||||
// Convert seconds to frames (assumes 60 FPS)
|
||||
let total_ticks = (level_timing.energizer_duration * 60.0).round().clamp(0.0, u32::MAX as f32) as u32;
|
||||
let total_ticks = 60 * 5;
|
||||
|
||||
// Add Vulnerable component to all ghosts
|
||||
for ghost_entity in ghost_query.iter() {
|
||||
|
||||
Reference in New Issue
Block a user