Allow basic cats to not have gender

This commit is contained in:
asonix 2020-10-26 17:49:26 -05:00
parent de0dd9580c
commit 047b5c27ee

View file

@ -507,7 +507,7 @@ enum GraySecondColor {
enum Pelt {
Tortoiseshell(Option<ColorModifier>, Option<Gembder>),
Tabby(Option<PeltColor>, Option<Gembder>),
Base(PeltColor, Gembder),
Base(PeltColor, Option<Gembder>),
}
impl Pelt {
@ -549,7 +549,8 @@ impl fmt::Display for Pelt {
}
Ok(())
}
Pelt::Base(color, gembder) => write!(f, "{} {}", color, gembder),
Pelt::Base(color, Some(gembder)) => write!(f, "{} {}", color, gembder),
Pelt::Base(color, None) => write!(f, "{} cat", color),
}
}
}
@ -581,7 +582,7 @@ impl PeltVariant {
Pelt::Tabby(Some(PeltColor::gen(rng, false)), Gembder::gen(rng))
}
PeltVariant::Tabby => Pelt::Tabby(None, Gembder::gen(rng)),
PeltVariant::Base => Pelt::Base(PeltColor::gen(rng, true), Gembder::gen_always(rng)),
PeltVariant::Base => Pelt::Base(PeltColor::gen(rng, true), Gembder::gen(rng)),
}
}
}
@ -613,10 +614,6 @@ impl Gembder {
fn gen_skewed(rng: &mut impl Rng) -> Option<Self> {
select_weighted(Self::weights_skewed(), rng, 10)
}
fn gen_always(rng: &mut impl Rng) -> Self {
select_weighted(Self::weights(), rng, 0).unwrap()
}
}
impl fmt::Display for Gembder {