type block

This commit is contained in:
CoCo_Sol 2023-05-21 16:36:56 +02:00
parent 4ab8a6aae4
commit 2afbb13a0e
2 changed files with 98 additions and 3 deletions

98
src/map/block.rs Normal file
View file

@ -0,0 +1,98 @@
//! on stocke les données des blocks (fonction, enum et struct)
use bevy::prelude::*;
#[derive(Component, Debug, PartialEq, Clone, Copy, Eq, Hash)]
/// tout les blocks du jeu c'est un Component
pub enum BlockType {
/// Un avant post
Outpost,
/// Un caserne
Caserne,
/// un chateau
Castle,
/// une ferme
Farm,
/// une block d'herbe
Grass,
/// une forêt
GrassForest,
/// une montagne
GrassHill,
/// une mine
Mine,
/// une tower
Tower,
/// un ameliorateur
Upgradeur,
/// un mur
Wall,
/// une ferme a animaux
Sheep,
}
impl BlockType {
/// permet de récupérer les images des blocks pour les afficher
pub fn get_image(&self, asset_server: &AssetServer) -> Handle<Image> {
match self {
Self::Outpost => asset_server.load("map/Outpost.png"),
Self::Caserne => asset_server.load("map/Caserne.png"),
Self::Castle => asset_server.load("map/Castle.png"),
Self::Farm => asset_server.load("map/Farm.png"),
Self::Grass => asset_server.load("map/Grass.png"),
Self::GrassForest => asset_server.load("map/GrassForest.png"),
Self::GrassHill => asset_server.load("map/GrassHill.png"),
Self::Mine => asset_server.load("map/Mine.png"),
Self::Tower => asset_server.load("map/Tower.png"),
Self::Upgradeur => asset_server.load("map/Upgradeur.png"),
Self::Wall => asset_server.load("map/Wall.png"),
Self::Sheep => asset_server.load("map/Sheep.png"),
}
}
/// permet de récupérer les textes des blocks
pub const fn get_text(&self) -> &str {
match self {
Self::Caserne => "a barracks, it allows you to create troops",
Self::Castle => "a castle, it's a base",
Self::Grass => "a block of grass, it's useless",
Self::GrassForest => "a forest, if you break it you can collect resources",
Self::GrassHill => "a mountain, if you break it you can collect resources",
Self::Mine => "a mine, it allows you to collect resources",
Self::Farm => "a farm, it allows you to collect resources",
Self::Outpost => "an outpost, it allows you to teleport your troops",
Self::Tower => "a defense tower, it allows you to defend your troops",
Self::Upgradeur => "an upgrader",
Self::Wall => "a wall",
Self::Sheep => "a food reseve wich permit create an army",
}
}
/// permet de récupérer les prix des blocks sous forme de texte
pub fn get_text_price(&self) -> String {
format!(
"{:?}\n\n{} Wood,\n{} Stone",
self,
self.get_price()[1],
self.get_price()[0]
)
}
/// permet de récupérer les prix des blocks
pub fn get_price(&self) -> [u32; 2] {
match self {
Self::Outpost => [2300, 3000],
Self::Caserne => [600, 400],
Self::Castle => todo!(),
Self::Farm => [200, 300],
Self::Grass => todo!(),
Self::GrassForest => todo!(),
Self::GrassHill => todo!(),
Self::Mine => [300, 200],
Self::Tower => [1500, 1500],
Self::Upgradeur => [1000, 1000],
Self::Wall => [4000, 4000],
Self::Sheep => [400, 500],
}
}
}

View file

@ -1,3 +0,0 @@
//! les fonction et struct de la map
pub enum TypeBlock {}