feat: Add BerrySeed ItemType (#51)
This commit is contained in:
@@ -3,28 +3,56 @@ use crate::prelude::*;
|
|||||||
#[derive(Serialize, Deserialize, Clone)]
|
#[derive(Serialize, Deserialize, Clone)]
|
||||||
pub enum ItemType {
|
pub enum ItemType {
|
||||||
Berry,
|
Berry,
|
||||||
|
BerrySeed {
|
||||||
|
prefix: String,
|
||||||
|
cost: u32,
|
||||||
|
grants: u32,
|
||||||
|
slice: String,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ItemType {
|
impl ItemType {
|
||||||
pub fn singular(&self) -> String {
|
pub fn singular(&self) -> String {
|
||||||
match self {
|
match self {
|
||||||
ItemType::Berry => "Beere",
|
ItemType::Berry => "Beere".into(),
|
||||||
|
ItemType::BerrySeed { prefix, .. } => format!("{}samen", prefix),
|
||||||
}
|
}
|
||||||
.into()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn plural(&self) -> String {
|
pub fn plural(&self) -> String {
|
||||||
match self {
|
match self {
|
||||||
ItemType::Berry => "Beeren",
|
ItemType::Berry => "Beeren".into(),
|
||||||
|
ItemType::BerrySeed { prefix, .. } => format!("{}samen", prefix),
|
||||||
}
|
}
|
||||||
.into()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn description(&self) -> String {
|
pub fn description(&self) -> String {
|
||||||
match self {
|
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