For modders 1.4 - WVCSergkart/WVC_RacesBiotech GitHub Wiki
A special def that is needed for compatibility with other mods.
<WVC_XenotypesAndGenes.XenotypesAndGenesListDef>
<defName>AnyDefName</defName>
<!-- Keywords that allow you to filter out defNames of xenotypes. -->
<!-- Xenotypes containing these words will not spawn in serums. Any string -->
<blackListedXenotypesForSerums>
<li>Baseliner</li>
</blackListedXenotypesForSerums>
<!-- List of xenotypes that can be in the resurrection serum. Any xenotype defs -->
<!-- It is combined with the usual list, it is only necessary to determine which of the prohibited xenotypes are allowed specifically for these purposes. -->
<whiteListedXenotypesForResurrectorSerums>
<!-- <li>WVC_Undead</li> -->
</whiteListedXenotypesForResurrectorSerums>
<!-- Xenotypes for xenotype filter. Needed to determine default xenotypes for serums. Any string -->
<!-- In addition to this filter, there are several more filtering stages. -->
<!-- All of them are in C# code and cannot be changed via XML. However, this filter takes precedence. -->
<whiteListedXenotypesForFilter>
<!-- <li>Pigskin</li> -->
</whiteListedXenotypesForFilter>
<!-- List of backstories that will not be overridden by the backstory changer. Required backstory defNames -->
<blackListedBackstoryForChanger>
<!-- <li>Colonist</li> -->
</blackListedBackstoryForChanger>
<!-- Words that should not be in the defName of Mechanoids. Used to random summon mechanoids. Required any string -->
<mechDefNameShouldNotContain>
<!-- <li>Zombie_</li> -->
</mechDefNameShouldNotContain>
<!-- Work only for WVC -XaG CompSpawnSubplant. Required thing defNames -->
<!-- WVC_XenotypesAndGenes.CompSpawnOnDeath_Subplants or WVC_XenotypesAndGenes.CompSpawnSubplantDuration -->
<plantsToNotOverwrite_SpawnSubplant>
<!-- <li>GauranlenTree</li> -->
</plantsToNotOverwrite_SpawnSubplant>
<!-- Ignored by shapeshifter mechanic. Required gene Types -->
<shapeShift_IgnoredGeneClasses>
<!-- <li>Gene_Spawner</li> -->
</shapeShift_IgnoredGeneClasses>
</WVC_XenotypesAndGenes.XenotypesAndGenesListDef>
Mod extension
<li Class="WVC_XenotypesAndGenes.GeneExtension_General">
<canBePredatorPrey>true</canBePredatorPrey>
</li>
<canBePredatorPrey>true</canBePredatorPrey>
- if false
, then animals will not be able to hunt the carrier of the gene.
Mod extension
<li Class="WVC_XenotypesAndGenes.GeneExtension_General">
<inheritableGeneDefs>
<li>PerfectImmunity</li>
<li>DiseaseFree</li>
</inheritableGeneDefs>
</li>
allows genes to inherit different stats from other genes.
For example, the "Perfect senescent" gene inherits immunity from the vanilla "Perfect immunity" and "Non-senescent" genes.
Currently inherited: exclusionTags
, makeImmuneTo
, hediffGiversCannotGive
, suppressedTraits
, forcedTraits
, conditionalStatAffecters
, statFactors
, statOffsets
, symbolPack
.
Allows you to set a custom background for genes. Bypasses the VEF hardcode.
<li Class="WVC_XenotypesAndGenes.GeneExtension_Background">
<backgroundPathEndogenes>WVC/UI/Genes/GeneBackground_Endogene</backgroundPathEndogenes>
<backgroundPathXenogenes>WVC/UI/Genes/GeneBackground_Xenogene</backgroundPathXenogenes>
<backgroundPathEndoArchite>WVC/UI/Genes/GeneBackground_ArchiteGene</backgroundPathEndoArchite>
<backgroundPathXenoArchite>WVC/UI/Genes/GeneBackground_XenoArchiteGene</backgroundPathXenoArchite>
</li>
Allows you to create a spawner gene for any item.
<GeneDef>
<defName>SteelSpawner</defName>
<label>steel spawner</label>
<description>Spawn steel.</description>
<geneClass>WVC_XenotypesAndGenes.Gene_Spawner</geneClass>
<iconPath>WVC/UI/Genes/Gene_Spawner</iconPath>
<customEffectDescriptions>
<li>Spawns steel every (*DateTime)2-3 days(/DateTime).</li>
<li>Stack count increases or decreases relative to metabolism.</li>
</customEffectDescriptions>
<exclusionTags>
<li>ResourceSpawner</li>
</exclusionTags>
<modExtensions>
<li Class="WVC_XenotypesAndGenes.GeneExtension_Spawner">
<thingDefToSpawn>Steel</thingDefToSpawn>
<stackCount>22</stackCount>
<spawnIntervalRange><min>120000</min><max>360000</max></spawnIntervalRange>
</li>
</modExtensions>
</GeneDef>
Allows you to create a furskin gene with visible tattoos and a mask.
Please note that the "Disable mecha/node/rune/stone(skin) graphic" option disables this mechanic.
<modExtensions>
<li Class="WVC_XenotypesAndGenes.GeneExtension_Graphic">
<furIsSkin>true</furIsSkin>
<furIsSkinWithHair>false</furIsSkinWithHair>
<furCanRot>true</furCanRot>
</li>
</modExtensions>
furIsSkin
- If true, then the furskin will replace the pawn skin.
furIsSkinWithHair
- If true, then the furskin will replace the pawn skin and use a mask. Red for skin color, green for hair color.
furCanRot
- If true, then when the pawn rots the furskin will not disappear.
<GeneDef WVC_Tag="MechaAndNodeSkins_EasyPatch">
<defName>NewFurskin</defName>
<label>new furskin</label>
<geneClass>WVC_XenotypesAndGenes.Gene_Exoskin</geneClass>
<iconPath>WVC/UI/Genes/Gene_FurskinD_v0</iconPath>
<graphicData>
<fur>WVC_MechaSkin</fur>
<skinIsHairColor>false</skinIsHairColor>
<tattoosVisible>true</tattoosVisible>
</graphicData>
<exclusionTags>
<li>AG_Bodies</li>
<li>Bodies</li>
<li>Fur</li>
</exclusionTags>
<modExtensions>
<li Class="WVC_XenotypesAndGenes.GeneExtension_Graphic">
<furIsSkin>true</furIsSkin>
<furIsSkinWithHair>false</furIsSkinWithHair>
<furCanRot>true</furCanRot>
</li>
</modExtensions>
</GeneDef>
There are two variants of XenotypeForcer:
CompProperties_UseEffect_XenotypeForcer
- Basic, in the mod it is used when generating serums.
CompProperties_UseEffect_XenotypeForcer_II
- Random, used only for a few serums.
<xenotypeForcerType>Base</xenotypeForcerType>
Can have one of 4 values, each of which is responsible for how the xenotype will be applied.
- Base
- Hybrid
- Custom
- CustomHybrid
Base - applies only one of the xenotypes, depending on whether it is inherited or not.
Hybrid - applies 2 xenotypes at once, necessarily of different heritability.
Custom - like Base only for custom xenotypes.
CustomHybrid - appropriately hybrid.
<removeEndogenes>true</removeEndogenes>
and <removeXenogenes>true</removeXenogenes>
- Responsible for whether genes will be removed before applying the xenotype.
<xenotypeDef>Baseliner</xenotypeDef>
- The xenotype that will be applied. For the hybrid type, you can choose only 1 of the two xenotypes. The second one is always random. If not specified, a random one will be selected.
<li Class="WVC_XenotypesAndGenes.CompProperties_UseEffect_XenotypeForcer">
<xenotypeForcerType>Base</xenotypeForcerType>
<xenotypeDef>Baseliner</xenotypeDef>
<removeEndogenes>true</removeEndogenes>
<removeXenogenes>true</removeXenogenes>
</li>
<xenotypeType>Base</xenotypeType>
- Type of xenotype, there are two of them. Basic and Archite.
- Base
- Archite
<li Class="WVC_XenotypesAndGenes.CompProperties_UseEffect_XenotypeForcer_II">
<xenotypeType>Base</xenotypeType>
<removeEndogenes>false</removeEndogenes>
<removeXenogenes>true</removeXenogenes>
</li>
Mechanics of hybrid sub-xenotypes.
A hybrid xenotype is created from several things.
From the vanilla double xenotype mechanics:
<doubleXenotypeChances>
<WVC_Undead>1.0</WVC_Undead>
</doubleXenotypeChances>
And class: Class="WVC_XenotypesAndGenes.SubXenotypeDef"
<XenotypeDef Class="WVC_XenotypesAndGenes.SubXenotypeDef">
<defName>WVC_Featherdust</defName>
<label>featherdust</label>
<iconPath>WVC/UI/Mecha_Icons/Gene_DustAngel_v0</iconPath>
<selectionWeight>0.7</selectionWeight>
<doubleXenotypeChances>
<WVC_Undead>1.0</WVC_Undead>
</doubleXenotypeChances>
<!-- If any genes need to be removed, they can be listed here. -->
<!-- The code is run in this order: double xenotype -> genes -> removeGenes -> endogenes -->
<!-- removeGenes removes genes from the double xenotype -->
<!-- Please note that if a gene is in removeGenes, it cannot be added to endogens -->
<removeGenes>
<li>WVC_RandomLearning</li>
<li>WVC_RandomHands</li>
<li>WVC_RandomWoundHealing</li>
<li>WVC_RandomImmunity</li>
<li>WVC_RandomMetabolism</li>
<li>WVC_RandomMoveSpeed</li>
<li>WVC_RandomPsychicAbility</li>
<li>StrongStomach</li>
<li>WVC_MildGeneticInstability</li>
<li>WVC_AgeDebuff_Sterile</li>
<li>WVC_SkinColor_Undead</li>
<li>Hair_Grayless</li>
<li>WVC_PatchSkin</li>
</removeGenes>
<!-- endogenes are always added to the germline -->
<endogenes>
<li>WVC_FeatherSkin</li>
<li>WVC_BodySize_Small</li>
<li>WVC_Pain_Extra</li>
<li>WVC_Learning_SlowNoSkillDecay</li>
<li>Skin_SheerWhite</li>
<li>WVC_NaturalDisease_DiseaseFree</li>
<li>WVC_NaturalImmunity_PerfectImmunity</li>
<li>WVC_HeadBoneHorns</li>
</endogenes>
<!-- genes are always added to the xenogenes -->
<genes>
<li>WVC_Dustogenic</li>
<li>WVC_Dustogenic_WoundHealing</li>
<li>WVC_Dustogenic_Ageless</li>
<li>WVC_Dustogenic_Metabolism</li>
<li>WVC_Dustogenic_Blesslink</li>
<li>WVC_Dustogenic_AngelBeauty</li>
<li>WVC_Dustogenic_GeneticStability</li>
<li>WVC_Dustogenic_ImmaculateConception</li>
<li>WVC_Dustogenic_Clotting</li>
<li>WVC_Dustogenic_FeatherBlades</li>
<li>WVC_Wings_FeatheredWings</li>
<li>WVC_FamilyByBlood_Dustogenic</li>
<li>WVC_Hands_Angel</li>
<li>Aggression_HyperAggressive</li>
<li>WVC_SlaveSuppression_Unruly</li>
</genes>
</XenotypeDef>
This is how the Featherdust and Resurgent xenotypes were created. Screenshots can be found above.