feat: Add BerrySeed ItemType (#51)
This commit is contained in:
@@ -3,28 +3,56 @@ use crate::prelude::*;
|
||||
#[derive(Serialize, Deserialize, Clone)]
|
||||
pub enum ItemType {
|
||||
Berry,
|
||||
BerrySeed {
|
||||
prefix: String,
|
||||
cost: u32,
|
||||
grants: u32,
|
||||
slice: String,
|
||||
},
|
||||
}
|
||||
|
||||
impl ItemType {
|
||||
pub fn singular(&self) -> String {
|
||||
match self {
|
||||
ItemType::Berry => "Beere",
|
||||
ItemType::Berry => "Beere".into(),
|
||||
ItemType::BerrySeed { prefix, .. } => format!("{}samen", prefix),
|
||||
}
|
||||
.into()
|
||||
}
|
||||
|
||||
pub fn plural(&self) -> String {
|
||||
match self {
|
||||
ItemType::Berry => "Beeren",
|
||||
ItemType::Berry => "Beeren".into(),
|
||||
ItemType::BerrySeed { prefix, .. } => format!("{}samen", prefix),
|
||||
}
|
||||
.into()
|
||||
}
|
||||
|
||||
pub fn description(&self) -> String {
|
||||
match self {
|
||||
ItemType::Berry => "Von Pflanzen erntbar. Kann im Shop zum Einkaufen benutzt werden.",
|
||||
ItemType::Berry => {
|
||||
"Von Pflanzen erntbar. Kann im Shop zum Einkaufen benutzt werden.".into()
|
||||
}
|
||||
ItemType::BerrySeed { grants, .. } => format!(
|
||||
"Im Shop kaufbar. Kann eingepflanzt werden. Erhalte beim Ernten {} {}.",
|
||||
grants,
|
||||
match grants {
|
||||
1 => ItemType::Berry.singular(),
|
||||
_ => ItemType::Berry.plural(),
|
||||
}
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_sprite(&self, asset_server: Res<AssetServer>) -> AseSlice {
|
||||
match self {
|
||||
ItemType::Berry => AseSlice {
|
||||
name: "Berry".into(),
|
||||
aseprite: asset_server.load("berry.aseprite"),
|
||||
},
|
||||
ItemType::BerrySeed { slice, .. } => AseSlice {
|
||||
name: slice.into(),
|
||||
aseprite: asset_server.load("seed.aseprite"),
|
||||
},
|
||||
}
|
||||
.into()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user