use bevy::prelude::*;

enum GunType {
    MachineGun,
    SMG,
    Pistol,
    Rifle,
}


#[derive(Component)]
struct GunStats {
    gun_type: GunType,
}

pub trait GunUtils {
    fn shoot(&mut self);
    fn reload(&mut self);
    fn get_ammo_count(&self) -> u32; 
}

pub struct GunBase {
    gun_stats: GunStats,
    gun_utils: dyn GunUtils,
}
