use super::keyword_instance::{Keyword, KeywordInstanceData};
#[derive(Debug, Clone)]
pub struct Companion {
pub base: KeywordInstanceData,
pub deck_restriction: Option<String>,
pub description: Option<String>,
pub special_rules: Option<String>,
}
impl Companion {
pub fn new(original: String) -> Self {
Self {
base: KeywordInstanceData::new(Keyword::Companion, original),
deck_restriction: None,
description: None,
special_rules: None,
}
}
pub fn parse(&mut self, details: &str) {
let split: Vec<&str> = details.split(':').collect();
if split.len() < 2 {
return;
}
self.deck_restriction = Some(split[0].to_string());
if split[0] == "Special" && split.len() > 1 {
self.special_rules = Some(split[1].to_string());
}
self.description = Some(split[split.len() - 1].to_string());
}
pub fn has_special_restriction(&self) -> bool {
self.special_rules.is_some()
}
pub fn get_title(&self) -> String {
self.base.keyword.display_name().to_string()
}
}