diff --git a/generator/src/racegroups.rs b/generator/src/racegroups.rs index 5b1a79b..9c01a7e 100644 --- a/generator/src/racegroups.rs +++ b/generator/src/racegroups.rs @@ -2,8 +2,8 @@ use std::collections::HashMap; #[derive(Clone, Debug)] pub struct RaceGroup { - pub races: Vec<&'static str>, pub name: String, + pub races: Vec<&'static str>, pub anus: String, pub f_breasts: String, pub m_breasts: String, @@ -11,17 +11,19 @@ pub struct RaceGroup { pub m_genitals: String, pub tag: String, pub sex_drive: String, - pub egg_implant: Option, + pub egg_implant: bool, } impl RaceGroup { - fn standard(races: Vec<&'static str>, - species: &'static str, - tag: &'static str, - sex_drive: &'static str, - breasts: &'static str, - anus: &'static str, - genitals: (&'static str, &'static str)) -> Self { + fn standard( + species: &'static str, + races: Vec<&'static str>, + tag: &'static str, + sex_drive: &'static str, + breasts: &'static str, + anus: &'static str, + genitals: (&'static str, &'static str) + ) -> Self { Self { races, name: format!("{}Person", species), @@ -32,17 +34,18 @@ impl RaceGroup { m_genitals: format!("{}Penis", genitals.1), tag: tag.to_string(), sex_drive: sex_drive.to_string(), - egg_implant: None, + egg_implant: false, } } - fn standard_animal(races: Vec<&'static str>, - species: &'static str, - tag: &'static str, - sex_drive: &'static str, - egg_implant: Option, - breasts: &'static str, - anus: &'static str, - genitals: (&'static str, &'static str)) -> Self { + fn standard_animal( + species: &'static str, + races: Vec<&'static str>, + tag: &'static str, + sex_drive: &'static str, + breasts: &'static str, + anus: &'static str, + genitals: (&'static str, &'static str) + ) -> Self { Self { races, name: format!("{}Animal", species), @@ -53,7 +56,7 @@ impl RaceGroup { m_genitals: format!("{}Penis", genitals.1), tag: tag.to_string(), sex_drive: sex_drive.to_string(), - egg_implant, + egg_implant: false, } } } @@ -74,13 +77,8 @@ pub fn construct_racegroup(group: &RaceGroup) -> String { races.push_str(&format!("\n\t\t\t
  • {race}
  • ")); } let fields = match group.egg_implant { - Some(imp) => { - match imp { - true => "true\n\t\ttrue\n\t\t".to_string(), - false => "true\n\t\t".to_string(), - } - }, - None => String::new() + true => "true\n\t\ttrue\n\t\t".to_string(), + false => String::new() }; let replace = HashMap::from([ ("{name}", group.name.clone()), @@ -117,6 +115,7 @@ const RACEGROUP_STRING: &'static str = " pub fn racegroup_data_humans() -> Vec { vec![ RaceGroup::standard( + "Human", vec![ "AA_Mime", "Alien_Goblin", @@ -128,6 +127,21 @@ pub fn racegroup_data_humans() -> Vec { "Alien_Twi'lek", "Alien_Zabrak", "HC_Giant", + "PW_Abra", + "PW_Alakazam", + "PW_Hitmonchan", + "PW_Hitmonlee", + "PW_Hitmontop", + "PW_Jynx", + "PW_Kadabra", + "PW_Machamp", + "PW_Machoke", + "PW_Machop", + "PW_Mewtwo", + "PW_MrMime", + "PW_Smoochum", + "PW_Snorlax", + "PW_Tyrogue", "WMH_Cyclops", "Yokai_Yamanba", "Yokai_YukiShizuku", @@ -146,13 +160,13 @@ pub fn racegroup_data_humans() -> Vec { "Ooka_Miko", "TrollRace", ], - "Human", "Skin", "1", "Breasts", "", ("", ""), ), RaceGroup::standard( + "Arthropod", vec![ "Alien_Beetle", "Alien_Mantis", @@ -163,35 +177,35 @@ pub fn racegroup_data_humans() -> Vec { "Races_BlackWidow", "Yokai_JorouGumo", ], - "Arthropod", "Chitin", "0.8", "Breasts", "Insect", ("Ovipore", "Aedeagus"), ), RaceGroup::standard( + "Avian", vec![ "ATK_Avianmorph", "Harpy", ], - "Avian", "Feathers", "0.9", "FeaturelessChest", "Cloacal", ("Cloacal", "Cloacal"), ), RaceGroup::standard( + "Bear", vec![ "WoW_Pandaren", "BearMan", ], - "Bear", "Fur", "0.9", "Breasts", "", ("", "Bear"), ), RaceGroup::standard( + "Canine", vec![ "ATK_Caninemorph", "WoW_Worgen", @@ -200,7 +214,6 @@ pub fn racegroup_data_humans() -> Vec { "siro", "WolfMan", ], - "Canine", "Fur", "1", "Breasts", "", @@ -208,6 +221,7 @@ pub fn racegroup_data_humans() -> Vec { ), // For foxes, hyenas, werewolves, etc (hyenas are felines oops) RaceGroup::standard( + "CanineHighSex", vec![ "ATK_Gnollmorph", "ATK_Vulpinemorph", @@ -219,25 +233,25 @@ pub fn racegroup_data_humans() -> Vec { "Yokai_NineTailWhite", "FoxMan", ], - "CanineHighSex", "Fur", "1.3", "Breasts", "", ("Dog", "Dog"), ), RaceGroup::standard( + "Crocodilian", vec![ "Alien_Argonian", "SSD_DeathclawRace", "Races_Lizardman", ], - "Crocodilian", "Scales", "0.9", "ScaleBreasts", "Cloacal", ("Cloacal", "Crocodilian"), ), RaceGroup::standard( + "Deer", vec![ "ATK_Cervinemorph", "CamelMan", @@ -246,24 +260,24 @@ pub fn racegroup_data_humans() -> Vec { "GazelleMan", "Lliscean", ], - "Deer", "Fur", "1", "Breasts", "", ("Narrow", "Needle"), ), RaceGroup::standard( + "Dino", vec![ "Raptor", "Tyrannosaur", ], - "Dino", "Scales", "0.9", "ScaleBreasts", "Cloacal", ("Cloacal", "Dino"), ), RaceGroup::standard( + "Dragon", vec![ "ATK_Dragomorph", "WMH_Basilisk", @@ -284,40 +298,40 @@ pub fn racegroup_data_humans() -> Vec { "ALapelli", "yuki", ], - "Dragon", "Scales", "1.2", "ScaleBreasts", "Cloacal", ("Cloacal", "Dragon") ), RaceGroup::standard( + "Elephant", vec![ "ElephantMan", ], - "Elephant", "Fur", "1", "Breasts", "", ("Elephant", "Elephant"), ), RaceGroup::standard( + "FoxGirl", vec![ "Alien_Hisa", "kon", "Vulpes", ], - "FoxGirl", "Fur", "1.3", "Petite_FoxGirl_Breasts", "Petite_FoxGirl_", ("Petite_FoxGirl_", ""), ), RaceGroup::standard( + "Elf", vec![ - "Alien_Eldar", "AS_WHE_Race", "Alien_Astoriel", "Alien_Drow_Otto", + "Alien_Eldar", "O21_Alien_DarkElf", "O21_Alien_MoonElf", "O21_Alien_SunElf", @@ -326,21 +340,30 @@ pub fn racegroup_data_humans() -> Vec { "O21_FR_MoonElf", "O21_FR_SunElf", "O21_FR_WoodElf", + "PW_Celebi", + "PW_Clefable", + "PW_Clefairy", + "PW_Cleffa", + "PW_Igglybuff", + "PW_Jigglypuff", + "PW_Togepi", + "PW_Togetic", + "PW_Wigglytuff", + "Sandy_Angel", "WoW_BloodElf", - "WoW_HighElf", - "WoW_NightElf", "WoW_ForsakenHighElf", "WoW_ForsakenNightElf", - "Sandy_Angel", + "WoW_HighElf", + "WoW_NightElf", "ElfRace", ], - "Elf", "Skin", "1.1", "Breasts", "Elf", ("Elf", "Elf"), ), RaceGroup::standard( + "Feline", vec![ "Alien_Nyaron", "ATK_Felinemorph", @@ -355,60 +378,78 @@ pub fn racegroup_data_humans() -> Vec { "Maidnukos", "miko", ], - "Feline", "Fur", "1", "Breasts", "Feline", ("Cat", "Cat"), ), RaceGroup::standard( + "Fish", vec![ "Alien_NiHal", "Alien_Quarren", "Alien_MonCalamari", + "PW_Corsola", + "PW_Goldeen", + "PW_Gyarados", + "PW_Horsea", + "PW_Kingdra", + "PW_Lanturn", + "PW_Magikarp", + "PW_Mantine", + "PW_Qwilfish", + "PW_Remoraid", + "PW_Seadra", + "PW_Seaking", + "PW_Starmie", + "PW_Staryu", "IkquanRace", ], - "Fish", "Scales", "0.8", "FeaturelessChest", "Cloacal", ("Cloacal", "Marine"), ), RaceGroup::standard( + "Ghost", vec![ "DRSKT_Race", "HPLovecraft_MistCreature", "MM_WillOWisp", + "PW_Gastly", + "PW_Gengar", + "PW_Haunter", + "PW_Misdreavus", "WoW_Skeleton", ], - "Ghost", "Demon", "0.5", "GhostBreasts", "Ghost", ("Ghost", "Ghost"), ), RaceGroup::standard( + "Ghoul", vec![ "Ghoul", "GlowingGhoul", ], - "Ghoul", "Demon", "0.5", "GhoulBreasts", "Ghoul", ("Ghoul", "Ghoul"), ), RaceGroup::standard( + "Horny", vec![ "Alien_Kijin", ], - "Horny", "Skin", "1.4", "Horny_Breasts", "", ("Horny_", "Horny_"), ), RaceGroup::standard( + "Orc", vec![ "Alien_Orc", "O21_Alien_Orc", @@ -425,13 +466,13 @@ pub fn racegroup_data_humans() -> Vec { "OG_Alien_Grot", "WoW_Orc", ], - "Orc", "Skin", "1.3", "OrcBreasts", "Orc", ("Orc", "Orc"), ), RaceGroup::standard( + "Horse", vec![ "Alien_Bullgor", "Alien_Equium", @@ -444,34 +485,34 @@ pub fn racegroup_data_humans() -> Vec { "Alien_ZPEquium", "WoW_Draenei", ], - "Horse", "Fur", "1.2", "Breasts", "Horse", ("Horse", "Horse"), ), RaceGroup::standard( + "Pig", vec![ "PigMan", ], - "Pig", "Fur", "1", "Breasts", "", ("Pig", "Pig"), ), RaceGroup::standard( + "Raccoon", vec![ "RaccoonMan", "StarWarsRaces_Ewok", ], - "Raccoon", "Fur", "1.1", "Breasts", "", ("", "Raccoon"), ), RaceGroup::standard( + "Reptile", vec![ "O21_Alien_Kobold", "O21_FR_Kobold", @@ -481,13 +522,13 @@ pub fn racegroup_data_humans() -> Vec { "Yokai_Samia", "Naga", ], - "Reptile", "Scales", "0.9", "ScaleBreasts", "Cloacal", ("Cloacal", "Hemi"), ), RaceGroup::standard( + "Rodent", vec![ "ATK_Lagomorph", "Alien_Skaven", @@ -502,29 +543,48 @@ pub fn racegroup_data_humans() -> Vec { "Rotti", "Rabbie", ], - "Rodent", "Fur", "1.3", "Petite_Breasts", "Petite_", ("Rodent", "Rodent"), ), RaceGroup::standard( + "Thrumbo", vec![ "Thrumkin", ], - "Thrumbo", "Fur", "1.2", "Breasts", "Cloacal", ("Cloacal", "Dragon") ), RaceGroup::standard( + "Tree", vec![ "Alien_Dryad", "Alien_DryadWild", "Alien_Tree", + "PW_Bayleef", + "PW_Bellossom", + "PW_Bellsprout", + "PW_Bulbasaur", + "PW_Chikorita", + "PW_Gloom", + "PW_Hoppip", + "PW_Ivysaur", + "PW_Jumpluff", + "PW_Meganium", + "PW_Oddish", + "PW_Skiploom", + "PW_Sudowoodo", + "PW_Sunflora", + "PW_Sunkern", + "PW_Tangela", + "PW_Venusaur", + "PW_Victreebel", + "PW_Vileplume", + "PW_Weepinbell", ], - "Tree", "Plant", "1", "TreeBreasts", "Tree", @@ -549,13 +609,18 @@ pub fn racegroup_data_humans() -> Vec { m_genitals: "BovinePenis".to_string(), tag: "Fur".to_string(), sex_drive: "1".to_string(), - egg_implant: None, + egg_implant: false, }, RaceGroup { races: vec![ "Alien_Slime", "Alien_Slug", "Mincho_ThingDef", + "PW_Ditto", + "PW_Grimer", + "PW_Magcargo", + "PW_Muk", + "PW_Slugma", "Yokai_HihiiroKabe", "Slime", ], @@ -567,7 +632,7 @@ pub fn racegroup_data_humans() -> Vec { m_genitals: "SlimeTentacles".to_string(), tag: "Slime".to_string(), sex_drive: "1".to_string(), - egg_implant: None, + egg_implant: false, }, ] } @@ -575,6 +640,7 @@ pub fn racegroup_data_humans() -> Vec { pub fn racegroup_data_animals() -> Vec { vec![ RaceGroup::standard_animal( + "GenericMammal", vec![ "Megasloth", "ACPRedPanda", @@ -583,13 +649,13 @@ pub fn racegroup_data_animals() -> Vec { "Yokai_IssunAnimal", "Andrewsarchus", ], - "GenericMammal", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Mammal", ("Mammal", "Mammal"), ), RaceGroup::standard_animal( + "Ape", vec![ "Monkey", "AEXP_Gorilla", @@ -597,17 +663,23 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_Lemur", "AEXP_Bonobo", "GR_ParagonHumanoid", + "PW_Aipom", + "PW_Electabuzz", + "PW_Lickitung", + "PW_Magmar", + "PW_Mankey", + "PW_Primeape", "Dinopithecus", "Gigantopithecus", ], - "Ape", - "Fur", "1.1", None, + "Fur", "1.1", "MammalBreasts", "Mammal", ("Mammal", "Monkey"), ), // Arthropods that have aedeagi and ovipores, and reproduce via spermatophores and egg-laying RaceGroup::standard_animal( + "Arthropod", vec![ "AA_AngelMoth", "AA_Atispec", @@ -631,6 +703,16 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_Megascorpion", "BWFlooferMoth", "Cults_ByakheeRace", + "PW_Cloyster", + "PW_Dunsparce", + "PW_Forretress", + "PW_Kabuto", + "PW_Kabutops", + "PW_Kingler", + "PW_Krabby", + "PW_Omanyte", + "PW_Omastar", + "PW_Shellder", "VAECaves_AncientGiantSpider", "VAECaves_CaveCrawler", "VAECaves_GiantSpider", @@ -639,13 +721,13 @@ pub fn racegroup_data_animals() -> Vec { "Arthropleura", "Pulmonoscorpius", ], - "Arthropod", - "Chitin", "0.7", Some(false), + "Chitin", "0.7", "", "Insect", ("Ovipore", "Aedeagus"), ), RaceGroup::standard_animal( + "Avian", vec![ "Cassowary", "Chicken", @@ -676,31 +758,53 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_RockhopperPenguin", "AEXP_WildGoose", "GR_Chickenbear", - "GR_Chickenlope", - "GR_Chickenffalo", - "GR_Chickenwolf", - "GR_Chickenrabbit", "GR_Chickencat", + "GR_Chickenffalo", + "GR_Chickenlope", + "GR_Chickenrabbit", + "GR_Chickenwolf", "GR_Manchicken", - "GR_Turkeyman", "GR_ParagonChicken", - "MM_Ieltxu", + "GR_Turkeyman", "MM_Fenghuang", + "MM_Ieltxu", "MM_Phoenix", - "RG-EAP_Dodo", + "PW_Articuno", + "PW_Delibird", + "PW_Dodrio", + "PW_Doduo", + "PW_Farfetchd", + "PW_Fearow", + "PW_Golduck", + "PW_HoOh", + "PW_Hoothoot", + "PW_Lugia", + "PW_Moltres", + "PW_Murkrow", + "PW_Natu", + "PW_Noctowl", + "PW_Pidgeot", + "PW_Pidgeotto", + "PW_Pidgey", + "PW_Psyduck", + "PW_Skarmory", + "PW_Spearow", + "PW_Xatu", + "PW_Zapdos", "RG-EAP_ArcticDrak", + "RG-EAP_Dodo", "Archostrich", "Dinornis", "Palaeeudyptes", "Titanis", ], - "Avian", - "Feathers", "0.8", Some(false), + "Feathers", "0.8", "", "Cloacal", ("Cloacal", "Cloacal"), ), RaceGroup::standard_animal( + "Canine", vec![ "Fox_Arctic", "Fox_Fennec", @@ -734,18 +838,35 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_WelshTerrier", "AEXP_AfricanWildDog", "ERN_Palamute", - "GR_Wolfbear", - "GR_Wolfalope", - "GR_Wolfchicken", - "GR_Wolffalo", - "GR_Wolfbeaver", - "GR_Wolfcat", "GR_Dogman", "GR_Manwolf", "GR_ParagonWolf", + "GR_Wolfalope", + "GR_Wolfbear", + "GR_Wolfbeaver", + "GR_Wolfcat", + "GR_Wolfchicken", + "GR_Wolffalo", "MM_Ahuizotl", - "MM_Kitsune", "MM_Cerberus", + "MM_Kitsune", + "PW_Arcanine", + "PW_Eevee", + "PW_Entei", + "PW_Espeon", + "PW_Flareon", + "PW_Granbull", + "PW_Growlithe", + "PW_Houndoom", + "PW_Houndour", + "PW_Jolteon", + "PW_Ninetales", + "PW_Raikou", + "PW_Snubbull", + "PW_Suicune", + "PW_Umbreon", + "PW_Vaporeon", + "PW_Vulpix", "Archomutt", "AnimaWarg", "Abaddog", @@ -753,24 +874,24 @@ pub fn racegroup_data_animals() -> Vec { "Omnicron", "Fuzztino", ], - "Canine", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Dog", ("Dog", "Dog"), ), RaceGroup::standard_animal( + "CanineSkin", vec![ "AA_RipperHound", ], - "CanineSkin", - "Skin", "0.9", None, + "Skin", "0.9", "MammalBreasts", "Dog", ("Dog", "Dog"), ), // Most even-toed ungulates go here, obviously excluding cetaceans RaceGroup::standard_animal( + "Cervine", vec![ "Alpaca", "Deer", @@ -780,31 +901,37 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_Camel", "AEXP_Giraffe", "AEXP_Moose", + "PW_Girafarig", + "PW_Stantler", "RG-WF_WastelandDeer", ], - "Cervine", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Mammal", ("Narrow", "Needle"), ), RaceGroup::standard_animal( + "Crocodilian", vec![ "AA_RoughPlatedMonitor", - "AEXP_Crocodile", "AEXP_Alligator", + "AEXP_Crocodile", + "PW_Croconaw", + "PW_Feraligatr", + "PW_Totodile", "Quinkana", "Purussaurus", ], - "Crocodilian", - "Scales", "0.8", Some(false), + "Scales", "0.8", "", "Cloacal", ("Cloacal", "Crocodilian"), ), RaceGroup::standard_animal( + "DinoFeathered", vec![ "AA_PedigreedRaptor", + "PW_Aerodactyl", "Dakotaraptor", "Deinocheirus", "Gallimimus", @@ -813,14 +940,19 @@ pub fn racegroup_data_animals() -> Vec { "Velociraptor", "Yutyrannus", ], - "DinoFeathered", - "Feathers", "1", Some(false), + "Feathers", "1", "", "Cloacal", ("Cloacal", "Dino"), ), RaceGroup::standard_animal( + "DinoScaled", vec![ + "PW_Cubone", + "PW_Marowak", + "PW_Kangaskhan", + "PW_Larvitar", + "PW_Tyranitar", "Allosaurus", "Ankylosaurus", "Baryonyx", @@ -848,18 +980,24 @@ pub fn racegroup_data_animals() -> Vec { "TyrannosaurusRex", "Utahraptor", ], - "DinoScaled", - "Scales", "1", Some(false), + "Scales", "1", "", "Cloacal", ("Cloacal", "Dino"), ), RaceGroup::standard_animal( + "Dragon", vec![ "AA_Behemoth", "AA_DecayDrake", - "MM_Qilin", "MM_LesserWyvern", + "MM_Qilin", + "PW_Charizard", + "PW_Charmander", + "PW_Charmeleon", + "PW_Dragonair", + "PW_Dragonite", + "PW_Dratini", "Yokai_RyuunoIkariAnimal", // Colored dragons "Black_Dragon", @@ -878,13 +1016,13 @@ pub fn racegroup_data_animals() -> Vec { "Mystogen", "Voltaic", ], - "Dragon", - "Scales", "1.2", Some(false), + "Scales", "1.2", "", "Cloacal", ("Cloacal", "Dragon"), ), RaceGroup::standard_animal( + "Elephant", vec![ "Elephant", "AA_Gallatross", @@ -893,6 +1031,10 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_IndianElephant", "AEXP_Tapir", "HC_WoollyMammoth", + "PW_Donphan", + "PW_Drowzee", + "PW_Hypno", + "PW_Phanpy", "RG-EAP_WoollyMammoth", "Boltusk", "Deinotherium", @@ -900,13 +1042,13 @@ pub fn racegroup_data_animals() -> Vec { "WoollyMammoth", "Zygolophodon", ], - "Elephant", - "Fur", "0.9", None, + "Fur", "0.9", "MammalBreasts", "Mammal", ("Elephant", "Elephant"), ), RaceGroup::standard_animal( + "Feline", vec![ "Cat", "Cougar", @@ -948,9 +1090,11 @@ pub fn racegroup_data_animals() -> Vec { "GR_Catman", "GR_ParagonFeline", "MM_Chimera", + "MM_Griffin", "MM_Manticore", "MM_Xiezhi", - "MM_Griffin", + "PW_Meowth", + "PW_Persian", "Carnagrius", "Dinocrocuta", "eBlackcat", @@ -959,24 +1103,24 @@ pub fn racegroup_data_animals() -> Vec { "Smilodon", "Snow_leopard", ], - "Feline", - "Fur", "1", None, + "Fur", "1", "CatBreasts", "Feline", ("Cat", "Cat"), ), RaceGroup::standard_animal( + "FelineHorny", vec![ "AEXP_Hyena", ], - "FelineHorny", - "Fur", "1.3", None, + "Fur", "1.3", "CatBreasts", "Feline", ("Cat", "Cat"), ), // Rhinos belong here, not with elephants, as they are odd-toed ungulates RaceGroup::standard_animal( + "Horse", vec![ "Donkey", "Horse", @@ -1004,73 +1148,83 @@ pub fn racegroup_data_animals() -> Vec { "GR_ParagonHorse", "MM_Pegasus", "MM_Unicorn", + "PW_Ponyta", + "PW_Rapidash", + "PW_Rhydon", + "PW_Rhyhorn", "RG-EAP_WoollyRhino", "Chalicotherium", "Elasmotherium", "Paraceratherium", "Uintatherium", ], - "Horse", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Horse", ("Horse", "Horse"), ), // I know hippos are more closely related to other artiodactyls than to pinnipeds, but their genitalia are strikingly similar due to convergent evolution RaceGroup::standard_animal( + "MarineMammal", vec![ "ACPSpottedSeal", "ACPWalrus", "ACPHippopotamus", "AEXP_Seal", "AEXP_Walrus", + "PW_Azumarill", + "PW_Dewgong", + "PW_Marill", + "PW_Seel", "Gomphotaria", ], - "MarineMammal", - "Fur", "0.9", None, + "Fur", "0.9", "MammalBreasts", "Mammal", ("Mammal", "Marine"), ), RaceGroup::standard_animal( + "Marsupial", vec![ "AEXP_Kangaroo", "Procoptodon", ], - "Marsupial", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Cloacal", ("Cloacal", "Cloacal"), ), // Marsupials with a bifurcated penis: All except kangaroos and marsupial moles RaceGroup::standard_animal( + "MarsupialBi", vec![ "AEXP_Koala", "AEXP_TasmanianDevil", + "PW_Diglett", + "PW_Dugtrio", "Diprotodon", ], - "MarsupialBi", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Cloacal", ("Cloacal", "Hemi"), ), // TODO: Should be single gender RaceGroup::standard_animal( + "Orc", vec![ "OG_Squig", "OG_Squig_Eatin", "OG_Squig_Oily", "OG_Snotling", ], - "Orc", - "Skin", "1", None, + "Skin", "1", "MammalBreasts", "Orc", ("Orc", "Orc"), ), RaceGroup::standard_animal( + "Pig", vec![ "Pig", "WildBoar", @@ -1078,30 +1232,35 @@ pub fn racegroup_data_animals() -> Vec { "AA_WindBeast", "AA_Darkbeast", "AA_DarkVandal", + "PW_Piloswine", + "PW_Slowbro", + "PW_Slowking", + "PW_Slowpoke", + "PW_Swinub", "ACPTapir", "ACPPeccary", "MM_ErymanthianBoar", "Daeodon", ], - "Pig", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Mammal", ("Pig", "Pig"), ), RaceGroup::standard_animal( + "Platypus", vec![ "ACPDuckBilledPlatypus", "AEXP_Platypus", ], - "Platypus", - "Fur", "0.9", Some(false), + "Fur", "0.9", "MammalBreasts", "Cloacal", ("Cloacal", "Cloacal"), ), // Mustelids RaceGroup::standard_animal( + "Raccoon", vec![ "Raccoon", "ACPMegaFerret", @@ -1114,15 +1273,17 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_MegaWolverine", "AEXP_Otter", "AEXP_Badger", + "PW_Smeargle", + "PW_Sneasel", "Enhydriodon", ], - "Raccoon", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Mammal", ("Mammal", "Raccoon"), ), RaceGroup::standard_animal( + "Reptile", vec![ "Cobra", "Iguana", @@ -1151,20 +1312,22 @@ pub fn racegroup_data_animals() -> Vec { "MM_Basilisk", "MM_Salamander", "MM_Tlilcoatl", + "PW_Arbok", + "PW_Ekans", "RG-WF_WastelandDeathclaw", "Gigantophis", "Megalania", "Rakk", "Titanoboa", ], - "Reptile", - "Scales", "0.8", Some(false), + "Scales", "0.8", "", "Cloacal", ("Cloacal", "Hemi"), ), // Rodents and Lagomorphs RaceGroup::standard_animal( + "Rodent", vec![ "Alphabeaver", "Boomrat", @@ -1206,8 +1369,27 @@ pub fn racegroup_data_animals() -> Vec { "GR_Rabbitchicken", "GR_Ratffalo", "GR_Squirralope", - "RG-WF_WastelandSquirrel", + "PW_Cyndaquil", + "PW_Furret", + "PW_Mew", + "PW_Nidoking", + "PW_Nidoqueen", + "PW_NidoranF", + "PW_NidoranM", + "PW_Nidorina", + "PW_Nidorino", + "PW_Pichu", + "PW_Pikachu", + "PW_Quilava", + "PW_Raichu", + "PW_Raticate", + "PW_Rattata", + "PW_Sandshrew", + "PW_Sandslash", + "PW_Sentret", + "PW_Typhlosion", "RG-WF_WastelandBeaver", + "RG-WF_WastelandSquirrel", "Yokai_SpinMouse", "Archojerboa", "Castoroides", @@ -1215,26 +1397,29 @@ pub fn racegroup_data_animals() -> Vec { "Josephoartigasia", "Pika", ], - "Rodent", - "Fur", "1.1", None, + "Fur", "1.1", "MammalBreasts", "Mammal", ("Mammal", "Rodent"), ), RaceGroup::standard_animal( + "Tentacle", vec![ "AA_Helixien", "AA_Plasmorph", "AA_SandSquid", "AA_TarGuzzler", + "PW_Octillery", + "PW_Tentacool", + "PW_Tentacruel", ], - "Tentacle", - "Slime", "0.8", Some(false), + "Slime", "0.8", "", "Cloacal", ("Cloacal", "Tentacle"), ), RaceGroup::standard_animal( + "Thrumbo", vec![ "Thrumbo", "GR_Thrumbear", @@ -1252,26 +1437,31 @@ pub fn racegroup_data_animals() -> Vec { "Archothrumbo", "RoyalThrumbo", ], - "Thrumbo", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Cloacal", ("Cloacal", "Dragon"), ), RaceGroup::standard_animal( + "Turtle", vec![ "Tortoise", "AEXP_DesertTortoise", + "PW_Blastoise", + "PW_Lapras", + "PW_Shuckle", + "PW_Squirtle", + "PW_Wartortle", "Archotortoise", "Megalochelys", ], - "Turtle", - "Scales", "0.8", Some(false), + "Scales", "0.8", "", "Cloacal", ("Cloacal", "Turtle"), ), RaceGroup::standard_animal( + "Ursine", vec![ "Bear", "Bear_Grizzly", @@ -1289,24 +1479,25 @@ pub fn racegroup_data_animals() -> Vec { "GR_Bearwolf", "GR_Manbear", "GR_ParagonBear", + "PW_Teddiursa", + "PW_Ursaring", "RG-WF_WastelandBear", "Archopanda", "AnimaBear", "ShortfacedBear", ], - "Ursine", - "Fur", "1", None, + "Fur", "1", "MammalBreasts", "Mammal", ("Mammal", "Bear"), ), // AA RaceGroup::standard_animal( + "AA_SandProwler", vec![ "AA_SandProwler", ], - "AA_SandProwler", - "Scales", "1", None, + "Scales", "1", "CatBreasts", "Feline", ("Cat", "Cat"), @@ -1342,26 +1533,31 @@ pub fn racegroup_data_animals() -> Vec { "AEXP_Wildebeest", "GR_Boomabear", "GR_Boomachicken", - "GR_Boomffalo", - "GR_Boomwolf", - "GR_Boomsquirrel", - "GR_Boomcat", "GR_Booman", + "GR_Boomcat", + "GR_Boomffalo", + "GR_Boomsquirrel", + "GR_Boomwolf", "GR_Manalope", "GR_Manffalo", "GR_Muffalobear", - "GR_Muffalope", - "GR_Muffalochicken", - "GR_Muffalowolf", "GR_Muffalocat", - "GR_Muffalorat", + "GR_Muffalochicken", "GR_Muffaloman", + "GR_Muffalope", + "GR_Muffalorat", + "GR_Muffalowolf", "GR_ParagonBoomalope", "GR_ParagonMuffalo", - "RG-EAP-Protoceratidae", - "MM_WildMinotaur", "MM_Catoblepas", "MM_CeryneianHind", + "MM_WildMinotaur", + "PW_Ampharos", + "PW_Flaaffy", + "PW_Mareep", + "PW_Miltank", + "PW_Tauros", + "RG-EAP-Protoceratidae", "Addax", "AngusCow", "AnkoleWatusiCow", @@ -1406,7 +1602,7 @@ pub fn racegroup_data_animals() -> Vec { m_genitals: "BovinePenis".to_string(), tag: "Fur".to_string(), sex_drive: "1".to_string(), - egg_implant: None, + egg_implant: false, }, // Arthropods that reproduce through oviposition RaceGroup { @@ -1428,6 +1624,26 @@ pub fn racegroup_data_animals() -> Vec { "AA_Feralisk", "AA_Junglelisk", "AACP_AnimaMegaspider", + "PW_Ariados", + "PW_Beedrill", + "PW_Butterfree", + "PW_Caterpie", + "PW_Heracross", + "PW_Kakuna", + "PW_Ledian", + "PW_Ledyba", + "PW_Metapod", + "PW_Paras", + "PW_Parasect", + "PW_Pineco", + "PW_Pinsir", + "PW_Scizor", + "PW_Scyther", + "PW_Spinarak", + "PW_Venomoth", + "PW_Venonat", + "PW_Weedle", + "PW_Yanma", "Meganeura", "Spiderant", ], @@ -1439,7 +1655,7 @@ pub fn racegroup_data_animals() -> Vec { m_genitals: "OvipositorM".to_string(), tag: "Chitin".to_string(), sex_drive: "1".to_string(), - egg_implant: Some(true), + egg_implant: true, }, RaceGroup { races: vec![ @@ -1454,7 +1670,7 @@ pub fn racegroup_data_animals() -> Vec { m_genitals: "OvipositorM".to_string(), tag: "Chitin".to_string(), sex_drive: "1.5".to_string(), - egg_implant: Some(true), + egg_implant: true, }, ] } \ No newline at end of file