From 2afbb13a0e81128a0cdf19f388f9385f6d8bc6ea Mon Sep 17 00:00:00 2001 From: CoCo_Sol Date: Sun, 21 May 2023 16:36:56 +0200 Subject: [PATCH] type block --- src/map/block.rs | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ src/map/mod.rs | 3 -- 2 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 src/map/block.rs delete mode 100644 src/map/mod.rs diff --git a/src/map/block.rs b/src/map/block.rs new file mode 100644 index 0000000..46646e3 --- /dev/null +++ b/src/map/block.rs @@ -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 { + 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], + } + } +} diff --git a/src/map/mod.rs b/src/map/mod.rs deleted file mode 100644 index bde5bfe..0000000 --- a/src/map/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -//! les fonction et struct de la map - -pub enum TypeBlock {}