type block
This commit is contained in:
parent
4ab8a6aae4
commit
2afbb13a0e
98
src/map/block.rs
Normal file
98
src/map/block.rs
Normal 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],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +0,0 @@
|
||||||
//! les fonction et struct de la map
|
|
||||||
|
|
||||||
pub enum TypeBlock {}
|
|
Loading…
Reference in a new issue