57 lines
1.4 KiB
Rust
57 lines
1.4 KiB
Rust
use bevy::prelude::*;
|
|
|
|
pub mod util;
|
|
pub mod components;
|
|
pub mod systems;
|
|
|
|
use components::*;
|
|
use util::roll;
|
|
|
|
fn main() {
|
|
App::new()
|
|
.add_plugins(DefaultPlugins)
|
|
.add_systems(Startup, setup)
|
|
.run();
|
|
}
|
|
|
|
|
|
fn setup(
|
|
mut commands: Commands,
|
|
mut meshes: ResMut<Assets<Mesh>>,
|
|
mut materials: ResMut<Assets<StandardMaterial>>,
|
|
) {
|
|
for i in 0..2 {
|
|
let (hp, _) = roll("1d6 + 3");
|
|
commands.spawn(Creature {
|
|
health: Health {
|
|
hp,
|
|
max: hp,
|
|
},
|
|
armor: Armor {
|
|
ac: 10,
|
|
},
|
|
spatial: SpatialBundle {
|
|
transform: Transform::from_xyz(i as f32 * 2.0, 0.0, 0.0),
|
|
..default()
|
|
},
|
|
})
|
|
.insert(PlayerCharacter)
|
|
.with_children(|parent| {
|
|
parent.spawn(PbrBundle {
|
|
mesh: meshes.add(shape::Capsule::default().into()),
|
|
material: materials.add(Color::WHITE.into()),
|
|
..default()
|
|
});
|
|
});
|
|
}
|
|
|
|
commands.spawn(DirectionalLightBundle {
|
|
transform: Transform::default().looking_at(Vec3::new(3.0, -50.0, 1.0), Vec3::Y),
|
|
..default()
|
|
});
|
|
commands.spawn(Camera3dBundle{
|
|
transform: Transform::from_xyz(1.0, 15.0, 2.0).looking_at(Vec3::ZERO, Vec3::Y),
|
|
..default()
|
|
});
|
|
}
|