Add gender to constructor

This commit is contained in:
AsmodeusRex 2022-12-16 21:03:37 -08:00
parent 1538712ffa
commit bde44382e5
3 changed files with 128 additions and 70 deletions

View file

@ -115,11 +115,8 @@ This mod requires RJW and must be placed somewhere below it.
* FCP dogmeat * FCP dogmeat
* Alpha mythology * Alpha mythology
### Test and improve ### Test and improve
* Emperor of dragon
* Gods of elona
* Race to the rim * Race to the rim
* Ooka miko * Dragon's descent crossbreeding
* kemomimihouse
## Thanks ## Thanks
* Ed86 (for Maintaining RJW) * Ed86 (for Maintaining RJW)

View file

@ -1,3 +1,6 @@
11.3.1
-Fixed Emperor of dragon, Gods of elona, Ooka miko, and kemomimihouse
11.3.0 11.3.0
-Fixed some viviparous species laying chicken eggs -Fixed some viviparous species laying chicken eggs
-Added PokeWorld support -Added PokeWorld support

View file

@ -11,6 +11,7 @@ pub struct RaceGroup {
pub m_genitals: String, pub m_genitals: String,
pub tag: String, pub tag: String,
pub sex_drive: String, pub sex_drive: String,
pub gendered: bool,
pub egg_implant: bool, pub egg_implant: bool,
} }
@ -20,6 +21,7 @@ impl RaceGroup {
races: Vec<&'static str>, races: Vec<&'static str>,
tag: &'static str, tag: &'static str,
sex_drive: &'static str, sex_drive: &'static str,
gendered: bool,
breasts: &'static str, breasts: &'static str,
anus: &'static str, anus: &'static str,
genitals: (&'static str, &'static str) genitals: (&'static str, &'static str)
@ -34,6 +36,7 @@ impl RaceGroup {
m_genitals: format!("{}Penis", genitals.1), m_genitals: format!("{}Penis", genitals.1),
tag: tag.to_string(), tag: tag.to_string(),
sex_drive: sex_drive.to_string(), sex_drive: sex_drive.to_string(),
gendered,
egg_implant: false, egg_implant: false,
} }
} }
@ -42,6 +45,7 @@ impl RaceGroup {
races: Vec<&'static str>, races: Vec<&'static str>,
tag: &'static str, tag: &'static str,
sex_drive: &'static str, sex_drive: &'static str,
gendered: bool,
breasts: &'static str, breasts: &'static str,
anus: &'static str, anus: &'static str,
genitals: (&'static str, &'static str) genitals: (&'static str, &'static str)
@ -56,6 +60,7 @@ impl RaceGroup {
m_genitals: format!("{}Penis", genitals.1), m_genitals: format!("{}Penis", genitals.1),
tag: tag.to_string(), tag: tag.to_string(),
sex_drive: sex_drive.to_string(), sex_drive: sex_drive.to_string(),
gendered,
egg_implant: false, egg_implant: false,
} }
} }
@ -72,22 +77,37 @@ fn tagify(content: &str, tag: &str) -> String {
pub fn construct_racegroup(group: &RaceGroup) -> String { pub fn construct_racegroup(group: &RaceGroup) -> String {
let mut s = String::from(RACEGROUP_STRING); let mut s = String::from(RACEGROUP_STRING);
let mut races = String::new(); let mut races = String::new();
for race in &group.races { for race in &group.races {
races.push_str(&format!("\n\t\t\t<li>{race}</li>")); races.push_str(&format!("\n\t\t\t<li>{race}</li>"));
} }
let fields = match group.egg_implant { let fields = match group.egg_implant {
true => "<oviPregnancy>true</oviPregnancy>\n\t\t<ImplantEggs>true</ImplantEggs>\n\t\t".to_string(), true => "<oviPregnancy>true</oviPregnancy>\n\t\t<ImplantEggs>true</ImplantEggs>\n\t\t".to_string(),
false => String::new() false => String::new()
}; };
let mut f_breasts = tagify(&group.f_breasts, "femaleBreasts");
let mut f_genital = tagify(&group.f_genitals, "femaleGenitals");
let gender = match !group.gendered {
true => {
f_breasts = "<femaleBreasts />".to_string();
f_genital = "<femaleGenitals />".to_string();
format!("\n\t\t<hasSingleGender>{}</hasSingleGender>", !group.gendered)
},
false => String::new(),
};
let replace = HashMap::from([ let replace = HashMap::from([
("{name}", group.name.clone()), ("{name}", group.name.clone()),
("{anus}", tagify(&group.anus, "anuses")), ("{anus}", tagify(&group.anus, "anuses")),
("{f_breasts}", tagify(&group.f_breasts, "femaleBreasts")), ("{f_breasts}", f_breasts),
("{f_genitals}", tagify(&group.f_genitals, "femaleGenitals")), ("{f_genitals}", f_genital),
("{m_breasts}", tagify(&group.m_breasts, "maleBreasts")), ("{m_breasts}", tagify(&group.m_breasts, "maleBreasts")),
("{m_genitals}", tagify(&group.m_genitals, "maleGenitals")), ("{m_genitals}", tagify(&group.m_genitals, "maleGenitals")),
("{tag}", tagify(&group.tag, "tags")), ("{tag}", tagify(&group.tag, "tags")),
("{gendered}", gender),
("{sex_drive}", group.sex_drive.clone()), ("{sex_drive}", group.sex_drive.clone()),
("{races}", races), ("{races}", races),
("{fields}", fields) ("{fields}", fields)
@ -109,7 +129,7 @@ const RACEGROUP_STRING: &'static str = "
{m_breasts} {m_breasts}
{m_genitals} {m_genitals}
{tag} {tag}
{fields}<raceSexDrive>{sex_drive}</raceSexDrive> {fields}<raceSexDrive>{sex_drive}</raceSexDrive>{gendered}
</rjw.RaceGroupDef>\n"; </rjw.RaceGroupDef>\n";
pub fn racegroup_data_humans() -> Vec<RaceGroup> { pub fn racegroup_data_humans() -> Vec<RaceGroup> {
@ -146,12 +166,6 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Yokai_Yamanba", "Yokai_Yamanba",
"Yokai_YukiShizuku", "Yokai_YukiShizuku",
"DwarfRace", "DwarfRace",
"eCutefairy",
"eDefender",
"eGoldenknight",
"eGwen",
"eYoungercatsister",
"eYoungersister",
"HorrorsInfestedHuman", "HorrorsInfestedHuman",
"HorrorsOverlord", "HorrorsOverlord",
"Elona_Imouto", "Elona_Imouto",
@ -160,7 +174,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Ooka_Miko", "Ooka_Miko",
"TrollRace", "TrollRace",
], ],
"Skin", "1", "Skin", "1", true,
"Breasts", "Breasts",
"", "",
("", ""), ("", ""),
@ -177,7 +191,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Races_BlackWidow", "Races_BlackWidow",
"Yokai_JorouGumo", "Yokai_JorouGumo",
], ],
"Chitin", "0.8", "Chitin", "0.8", true,
"Breasts", "Breasts",
"Insect", "Insect",
("Ovipore", "Aedeagus"), ("Ovipore", "Aedeagus"),
@ -188,7 +202,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"ATK_Avianmorph", "ATK_Avianmorph",
"Harpy", "Harpy",
], ],
"Feathers", "0.9", "Feathers", "0.9", true,
"FeaturelessChest", "FeaturelessChest",
"Cloacal", "Cloacal",
("Cloacal", "Cloacal"), ("Cloacal", "Cloacal"),
@ -199,7 +213,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"WoW_Pandaren", "WoW_Pandaren",
"BearMan", "BearMan",
], ],
"Fur", "0.9", "Fur", "0.9", true,
"Breasts", "Breasts",
"", "",
("", "Bear"), ("", "Bear"),
@ -214,7 +228,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"siro", "siro",
"WolfMan", "WolfMan",
], ],
"Fur", "1", "Fur", "1", true,
"Breasts", "Breasts",
"", "",
("Dog", "Dog"), ("Dog", "Dog"),
@ -233,7 +247,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Yokai_NineTailWhite", "Yokai_NineTailWhite",
"FoxMan", "FoxMan",
], ],
"Fur", "1.3", "Fur", "1.3", true,
"Breasts", "Breasts",
"", "",
("Dog", "Dog"), ("Dog", "Dog"),
@ -245,7 +259,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"SSD_DeathclawRace", "SSD_DeathclawRace",
"Races_Lizardman", "Races_Lizardman",
], ],
"Scales", "0.9", "Scales", "0.9", true,
"ScaleBreasts", "ScaleBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Crocodilian"), ("Cloacal", "Crocodilian"),
@ -260,7 +274,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"GazelleMan", "GazelleMan",
"Lliscean", "Lliscean",
], ],
"Fur", "1", "Fur", "1", true,
"Breasts", "Breasts",
"", "",
("Narrow", "Needle"), ("Narrow", "Needle"),
@ -271,7 +285,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Raptor", "Raptor",
"Tyrannosaur", "Tyrannosaur",
], ],
"Scales", "0.9", "Scales", "0.9", true,
"ScaleBreasts", "ScaleBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Dino"), ("Cloacal", "Dino"),
@ -292,13 +306,12 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Yokai_Tenaga", "Yokai_Tenaga",
"Yokai_TenagaH", "Yokai_TenagaH",
"Yokai_TubakiAnimal", "Yokai_TubakiAnimal",
"EmperorDragon",
"HalfDragon", "HalfDragon",
"Dragon_Kilhn", "Dragon_Kilhn",
"ALapelli", "ALapelli",
"yuki", "yuki",
], ],
"Scales", "1.2", "Scales", "1.2", true,
"ScaleBreasts", "ScaleBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Dragon") ("Cloacal", "Dragon")
@ -308,7 +321,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
vec![ vec![
"ElephantMan", "ElephantMan",
], ],
"Fur", "1", "Fur", "1", true,
"Breasts", "Breasts",
"", "",
("Elephant", "Elephant"), ("Elephant", "Elephant"),
@ -320,7 +333,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"kon", "kon",
"Vulpes", "Vulpes",
], ],
"Fur", "1.3", "Fur", "1.3", true,
"Petite_FoxGirl_Breasts", "Petite_FoxGirl_Breasts",
"Petite_FoxGirl_", "Petite_FoxGirl_",
("Petite_FoxGirl_", ""), ("Petite_FoxGirl_", ""),
@ -357,7 +370,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"WoW_NightElf", "WoW_NightElf",
"ElfRace", "ElfRace",
], ],
"Skin", "1.1", "Skin", "1.1", true,
"Breasts", "Breasts",
"Elf", "Elf",
("Elf", "Elf"), ("Elf", "Elf"),
@ -378,7 +391,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Maidnukos", "Maidnukos",
"miko", "miko",
], ],
"Fur", "1", "Fur", "1", true,
"Breasts", "Breasts",
"Feline", "Feline",
("Cat", "Cat"), ("Cat", "Cat"),
@ -405,7 +418,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"PW_Staryu", "PW_Staryu",
"IkquanRace", "IkquanRace",
], ],
"Scales", "0.8", "Scales", "0.8", true,
"FeaturelessChest", "FeaturelessChest",
"Cloacal", "Cloacal",
("Cloacal", "Marine"), ("Cloacal", "Marine"),
@ -422,7 +435,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"PW_Misdreavus", "PW_Misdreavus",
"WoW_Skeleton", "WoW_Skeleton",
], ],
"Demon", "0.5", "Demon", "0.5", true,
"GhostBreasts", "GhostBreasts",
"Ghost", "Ghost",
("Ghost", "Ghost"), ("Ghost", "Ghost"),
@ -433,7 +446,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Ghoul", "Ghoul",
"GlowingGhoul", "GlowingGhoul",
], ],
"Demon", "0.5", "Demon", "0.5", true,
"GhoulBreasts", "GhoulBreasts",
"Ghoul", "Ghoul",
("Ghoul", "Ghoul"), ("Ghoul", "Ghoul"),
@ -443,7 +456,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
vec![ vec![
"Alien_Kijin", "Alien_Kijin",
], ],
"Skin", "1.4", "Skin", "1.4", true,
"Horny_Breasts", "Horny_Breasts",
"", "",
("Horny_", "Horny_"), ("Horny_", "Horny_"),
@ -466,7 +479,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"OG_Alien_Grot", "OG_Alien_Grot",
"WoW_Orc", "WoW_Orc",
], ],
"Skin", "1.3", "Skin", "1.3", true,
"OrcBreasts", "OrcBreasts",
"Orc", "Orc",
("Orc", "Orc"), ("Orc", "Orc"),
@ -485,7 +498,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Alien_ZPEquium", "Alien_ZPEquium",
"WoW_Draenei", "WoW_Draenei",
], ],
"Fur", "1.2", "Fur", "1.2", true,
"Breasts", "Breasts",
"Horse", "Horse",
("Horse", "Horse"), ("Horse", "Horse"),
@ -495,7 +508,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
vec![ vec![
"PigMan", "PigMan",
], ],
"Fur", "1", "Fur", "1", true,
"Breasts", "Breasts",
"", "",
("Pig", "Pig"), ("Pig", "Pig"),
@ -506,7 +519,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"RaccoonMan", "RaccoonMan",
"StarWarsRaces_Ewok", "StarWarsRaces_Ewok",
], ],
"Fur", "1.1", "Fur", "1.1", true,
"Breasts", "Breasts",
"", "",
("", "Raccoon"), ("", "Raccoon"),
@ -522,7 +535,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Yokai_Samia", "Yokai_Samia",
"Naga", "Naga",
], ],
"Scales", "0.9", "Scales", "0.9", true,
"ScaleBreasts", "ScaleBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Hemi"), ("Cloacal", "Hemi"),
@ -543,7 +556,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"Rotti", "Rotti",
"Rabbie", "Rabbie",
], ],
"Fur", "1.3", "Fur", "1.3", true,
"Petite_Breasts", "Petite_Breasts",
"Petite_", "Petite_",
("Rodent", "Rodent"), ("Rodent", "Rodent"),
@ -553,7 +566,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
vec![ vec![
"Thrumkin", "Thrumkin",
], ],
"Fur", "1.2", "Fur", "1.2", true,
"Breasts", "Breasts",
"Cloacal", "Cloacal",
("Cloacal", "Dragon") ("Cloacal", "Dragon")
@ -585,7 +598,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
"PW_Vileplume", "PW_Vileplume",
"PW_Weepinbell", "PW_Weepinbell",
], ],
"Plant", "1", "Plant", "1", true,
"TreeBreasts", "TreeBreasts",
"Tree", "Tree",
("Tree", "Tree"), ("Tree", "Tree"),
@ -609,6 +622,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
m_genitals: "BovinePenis".to_string(), m_genitals: "BovinePenis".to_string(),
tag: "Fur".to_string(), tag: "Fur".to_string(),
sex_drive: "1".to_string(), sex_drive: "1".to_string(),
gendered: true,
egg_implant: false, egg_implant: false,
}, },
RaceGroup { RaceGroup {
@ -632,6 +646,7 @@ pub fn racegroup_data_humans() -> Vec<RaceGroup> {
m_genitals: "SlimeTentacles".to_string(), m_genitals: "SlimeTentacles".to_string(),
tag: "Slime".to_string(), tag: "Slime".to_string(),
sex_drive: "1".to_string(), sex_drive: "1".to_string(),
gendered: true,
egg_implant: false, egg_implant: false,
}, },
] ]
@ -649,7 +664,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Yokai_IssunAnimal", "Yokai_IssunAnimal",
"Andrewsarchus", "Andrewsarchus",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Mammal", "Mammal"), ("Mammal", "Mammal"),
@ -672,7 +687,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Dinopithecus", "Dinopithecus",
"Gigantopithecus", "Gigantopithecus",
], ],
"Fur", "1.1", "Fur", "1.1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Mammal", "Monkey"), ("Mammal", "Monkey"),
@ -721,7 +736,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Arthropleura", "Arthropleura",
"Pulmonoscorpius", "Pulmonoscorpius",
], ],
"Chitin", "0.7", "Chitin", "0.7", true,
"", "",
"Insect", "Insect",
("Ovipore", "Aedeagus"), ("Ovipore", "Aedeagus"),
@ -798,7 +813,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Palaeeudyptes", "Palaeeudyptes",
"Titanis", "Titanis",
], ],
"Feathers", "0.8", "Feathers", "0.8", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Cloacal"), ("Cloacal", "Cloacal"),
@ -874,7 +889,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Omnicron", "Omnicron",
"Fuzztino", "Fuzztino",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Dog", "Dog",
("Dog", "Dog"), ("Dog", "Dog"),
@ -884,7 +899,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
vec![ vec![
"AA_RipperHound", "AA_RipperHound",
], ],
"Skin", "0.9", "Skin", "0.9", true,
"MammalBreasts", "MammalBreasts",
"Dog", "Dog",
("Dog", "Dog"), ("Dog", "Dog"),
@ -905,7 +920,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"PW_Stantler", "PW_Stantler",
"RG-WF_WastelandDeer", "RG-WF_WastelandDeer",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Narrow", "Needle"), ("Narrow", "Needle"),
@ -922,7 +937,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Quinkana", "Quinkana",
"Purussaurus", "Purussaurus",
], ],
"Scales", "0.8", "Scales", "0.8", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Crocodilian"), ("Cloacal", "Crocodilian"),
@ -940,7 +955,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Velociraptor", "Velociraptor",
"Yutyrannus", "Yutyrannus",
], ],
"Feathers", "1", "Feathers", "1", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Dino"), ("Cloacal", "Dino"),
@ -980,7 +995,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"TyrannosaurusRex", "TyrannosaurusRex",
"Utahraptor", "Utahraptor",
], ],
"Scales", "1", "Scales", "1", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Dino"), ("Cloacal", "Dino"),
@ -1017,7 +1032,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Mystogen", "Mystogen",
"Voltaic", "Voltaic",
], ],
"Scales", "1.2", "Scales", "1.2", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Dragon"), ("Cloacal", "Dragon"),
@ -1043,7 +1058,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"WoollyMammoth", "WoollyMammoth",
"Zygolophodon", "Zygolophodon",
], ],
"Fur", "0.9", "Fur", "0.9", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Elephant", "Elephant"), ("Elephant", "Elephant"),
@ -1098,13 +1113,12 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"PW_Persian", "PW_Persian",
"Carnagrius", "Carnagrius",
"Dinocrocuta", "Dinocrocuta",
"eBlackcat",
"Jeeta", "Jeeta",
"Pallas_cat", "Pallas_cat",
"Smilodon", "Smilodon",
"Snow_leopard", "Snow_leopard",
], ],
"Fur", "1", "Fur", "1", true,
"CatBreasts", "CatBreasts",
"Feline", "Feline",
("Cat", "Cat"), ("Cat", "Cat"),
@ -1114,7 +1128,17 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
vec![ vec![
"AEXP_Hyena", "AEXP_Hyena",
], ],
"Fur", "1.3", "Fur", "1.3", true,
"CatBreasts",
"Feline",
("Cat", "Cat"),
),
RaceGroup::standard_animal(
"FelineSingleGender",
vec![
"eBlackcat",
],
"Fur", "1", false,
"CatBreasts", "CatBreasts",
"Feline", "Feline",
("Cat", "Cat"), ("Cat", "Cat"),
@ -1159,11 +1183,42 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Paraceratherium", "Paraceratherium",
"Uintatherium", "Uintatherium",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Horse", "Horse",
("Horse", "Horse"), ("Horse", "Horse"),
), ),
RaceGroup::standard_animal(
"HumanlikeGenderless",
vec![
"eCutefairy",
"eDefender",
"eGoldenknight",
"eGwen",
"eYoungercatsister",
"eYoungersister",
"EmperorDragon",
"akame",
"aome",
"baier",
"buer",
"hana",
"jiaer",
"juer",
"kohime",
"kon",
"kuoer",
"kuro",
"miko",
"siro",
"yuki",
"zhuer",
],
"Skin", "1", false,
"Breasts",
"",
("", ""),
),
// I know hippos are more closely related to other artiodactyls than to pinnipeds, but their genitalia are strikingly similar due to convergent evolution // 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( RaceGroup::standard_animal(
"MarineMammal", "MarineMammal",
@ -1179,7 +1234,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"PW_Seel", "PW_Seel",
"Gomphotaria", "Gomphotaria",
], ],
"Fur", "0.9", "Fur", "0.9", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Mammal", "Marine"), ("Mammal", "Marine"),
@ -1190,7 +1245,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"AEXP_Kangaroo", "AEXP_Kangaroo",
"Procoptodon", "Procoptodon",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Cloacal"), ("Cloacal", "Cloacal"),
@ -1205,7 +1260,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"PW_Dugtrio", "PW_Dugtrio",
"Diprotodon", "Diprotodon",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Hemi"), ("Cloacal", "Hemi"),
@ -1219,7 +1274,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"OG_Squig_Oily", "OG_Squig_Oily",
"OG_Snotling", "OG_Snotling",
], ],
"Skin", "1", "Skin", "1", true,
"MammalBreasts", "MammalBreasts",
"Orc", "Orc",
("Orc", "Orc"), ("Orc", "Orc"),
@ -1243,7 +1298,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"MM_ErymanthianBoar", "MM_ErymanthianBoar",
"Daeodon", "Daeodon",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Pig", "Pig"), ("Pig", "Pig"),
@ -1254,7 +1309,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"ACPDuckBilledPlatypus", "ACPDuckBilledPlatypus",
"AEXP_Platypus", "AEXP_Platypus",
], ],
"Fur", "0.9", "Fur", "0.9", true,
"MammalBreasts", "MammalBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Cloacal"), ("Cloacal", "Cloacal"),
@ -1278,7 +1333,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"PW_Sneasel", "PW_Sneasel",
"Enhydriodon", "Enhydriodon",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Mammal", "Raccoon"), ("Mammal", "Raccoon"),
@ -1322,7 +1377,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Rakk", "Rakk",
"Titanoboa", "Titanoboa",
], ],
"Scales", "0.8", "Scales", "0.8", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Hemi"), ("Cloacal", "Hemi"),
@ -1399,7 +1454,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Josephoartigasia", "Josephoartigasia",
"Pika", "Pika",
], ],
"Fur", "1.1", "Fur", "1.1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Mammal", "Rodent"), ("Mammal", "Rodent"),
@ -1415,7 +1470,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"PW_Tentacool", "PW_Tentacool",
"PW_Tentacruel", "PW_Tentacruel",
], ],
"Slime", "0.8", "Slime", "0.8", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Tentacle"), ("Cloacal", "Tentacle"),
@ -1439,7 +1494,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Archothrumbo", "Archothrumbo",
"RoyalThrumbo", "RoyalThrumbo",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Cloacal", "Cloacal",
("Cloacal", "Dragon"), ("Cloacal", "Dragon"),
@ -1457,7 +1512,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"Archotortoise", "Archotortoise",
"Megalochelys", "Megalochelys",
], ],
"Scales", "0.8", "Scales", "0.8", true,
"", "",
"Cloacal", "Cloacal",
("Cloacal", "Turtle"), ("Cloacal", "Turtle"),
@ -1489,7 +1544,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
"AnimaBear", "AnimaBear",
"ShortfacedBear", "ShortfacedBear",
], ],
"Fur", "1", "Fur", "1", true,
"MammalBreasts", "MammalBreasts",
"Mammal", "Mammal",
("Mammal", "Bear"), ("Mammal", "Bear"),
@ -1500,7 +1555,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
vec![ vec![
"AA_SandProwler", "AA_SandProwler",
], ],
"Scales", "1", "Scales", "1", true,
"CatBreasts", "CatBreasts",
"Feline", "Feline",
("Cat", "Cat"), ("Cat", "Cat"),
@ -1605,6 +1660,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
m_genitals: "BovinePenis".to_string(), m_genitals: "BovinePenis".to_string(),
tag: "Fur".to_string(), tag: "Fur".to_string(),
sex_drive: "1".to_string(), sex_drive: "1".to_string(),
gendered: true,
egg_implant: false, egg_implant: false,
}, },
// Arthropods that reproduce through oviposition // Arthropods that reproduce through oviposition
@ -1658,6 +1714,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
m_genitals: "OvipositorM".to_string(), m_genitals: "OvipositorM".to_string(),
tag: "Chitin".to_string(), tag: "Chitin".to_string(),
sex_drive: "1".to_string(), sex_drive: "1".to_string(),
gendered: true,
egg_implant: true, egg_implant: true,
}, },
RaceGroup { RaceGroup {
@ -1673,6 +1730,7 @@ pub fn racegroup_data_animals() -> Vec<RaceGroup> {
m_genitals: "OvipositorM".to_string(), m_genitals: "OvipositorM".to_string(),
tag: "Chitin".to_string(), tag: "Chitin".to_string(),
sex_drive: "1.5".to_string(), sex_drive: "1.5".to_string(),
gendered: true,
egg_implant: true, egg_implant: true,
}, },
] ]