diff --git a/CHANGELOG.md b/CHANGELOG.md
index df95576..6ff0057 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,5 @@
# 1.2
-**Since beta-1**:
-
-- Fix of icon-names (#36)
-- Changes to the scenario (more building items, throne for start). Wealth is now at 12k, which is the same as crashlanded and lost tribe.
-
**Changes:**
- Cocoon Weaver Gene
@@ -55,8 +50,8 @@ I disabled the specific gender and the oviparious reproduction (when you have rj
I recommend using alpha genes for the Hive-Playthroughs, as otherwise the Halamyr look a bit ... boring?
But i don't want to add a bunch of cosmetic genes on top of things.
-*And what the fuck is a halamyr?* Well I had to name my little ants somehow. But I didn't want to call them `myr` as I maybe want to make some [TiTs](https://www.fenoxo.com/play-games/) xenotypes separately.
-And I am aware that the TiTs-Myr work different than the things I made now.
+*And what the fuck is a halamyr?* Well I had to name my little ants somehow. But I didn't want to call them `myr` as I maybe want to make some TiTs xenotypes separately.
+And I am aware that the TiTs-Myr work different than the things I built now.
# 1.1.4
diff --git a/Common/Defs/GeneDefs/Xenotype_Hive.xml b/Common/Defs/GeneDefs/Xenotype_Hive.xml
index 7d8b31b..91f6023 100644
--- a/Common/Defs/GeneDefs/Xenotype_Hive.xml
+++ b/Common/Defs/GeneDefs/Xenotype_Hive.xml
@@ -97,27 +97,25 @@
false
0.8
- The Halamyr breeders are the backbone of the hive. Their special genes allow them to carry more eggs and hatch them faster, enabling a steady output of hivelings. To support their position in the hive, breeders spend most of their life in the queens cocoon, a task which they gladly accept.
+ The Halamyr breeders are the last backbone of the hive. Their special genes allow them to carry more eggs and hatch them faster, enabling a steady output of hivelings. To support their position in the hive, breeders spend most of their life in the queens cocoon, a task which they gladly accept.
Made for incubating Halamyr eggs, breeders spend most of their life in the queens cocoon.
AG_Spinnerets
AG_InsectBlood
AG_InsectJellyProduction
- AG_FormicAntennas
- Fertile
- AG_FastGestation
FireTerror
VerySleepy
rjw_genes_bisexual
+ AG_BeeMandibles
Skin_DeepRed
AptitudeStrong_Social
+ rjw_genes_ovipositor_genitalia
+ rjw_genes_unbreakable
rjw_genes_drone
rjw_genes_female_only
rjw_genes_zealous_loyalty
rjw_genes_insectincubator
- rjw_genes_zoophile
- rjw_genes_no_vagina
diff --git a/Common/Defs/Scenarios/Halamyr_Hive.xml b/Common/Defs/Scenarios/Halamyr_Hive.xml
index 0c9387a..338a611 100644
--- a/Common/Defs/Scenarios/Halamyr_Hive.xml
+++ b/Common/Defs/Scenarios/Halamyr_Hive.xml
@@ -47,7 +47,7 @@
Baseliner
- 2
+ 1
@@ -80,12 +80,12 @@
StartingThing_Defined
Silver
- 400
+ 200
StartingThing_Defined
Pemmican
- 250
+ 150
StartingThing_Defined
@@ -95,14 +95,23 @@
StartingThing_Defined
MedicineHerbal
- 30
+ 20
StartingThing_Defined
MeleeWeapon_Club
WoodLog
+
+ StartingThing_Defined
+ MeleeWeapon_Knife
+ Jade
+
+
+ StartingThing_Defined
+ Pila
+
StartingAnimal
Spelopede
@@ -132,11 +141,6 @@
Jade
100
-
- ScatterThingsNearPlayerStart
- Steel
- 200
-
diff --git a/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs b/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs
index 559ec2c..d102a8a 100644
--- a/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs
+++ b/Source/Genes/Hive/Genes/Gene_InsectIncubator.cs
@@ -15,8 +15,6 @@ namespace RJW_Genes
/// 1. Is it fertilized ? => tick it down "extra".
/// 2. Is it not fertilized? => fertilize it with the Incubator as parent
///
- /// To save performance, this gene fires (default) every 0.5h, which also means a slight delay until fertilization happens.
- ///
/// Important: The other half of the behavior for the gene (more egg-capacity) is in `Patch_InsectINcubator_PregnancyHelper`.
///
public class Gene_InsectIncubator : Gene
@@ -44,8 +42,7 @@ namespace RJW_Genes
egg.Fertilize(pawn);
if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"Gene_InsectIncubator: fertilized egg {egg} in {pawn}");
}
- // DevNote: There is an issue with Eggs reaching too much gestation progress (>100%), which causes DownStream bugs. To avoid this, there are some extra checks in place.
- else if (egg.fertilized && egg.GestationProgress <= .93)
+ else if (egg.fertilized)
{
egg.lastTick += TICK_INTERVAL;
}
diff --git a/Source/Genes/Hive/Patches/Patch_InsectEggs_BirthBaby_SetHiveGenes.cs b/Source/Genes/Hive/Patches/Patch_InsectEggs_BirthBaby_SetHiveGenes.cs
deleted file mode 100644
index e65986e..0000000
--- a/Source/Genes/Hive/Patches/Patch_InsectEggs_BirthBaby_SetHiveGenes.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-using HarmonyLib;
-using RimWorld;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Verse;
-
-namespace RJW_Genes
-{
- ///
- /// Patches the method `ProcessHumanLikeInsectEgg` from `Hediff_InsectEgg`.
- ///
- /// The 'ProcessHumanLikeInsectEgg' returns the finished baby, for which we alter the pawn according to our xenotypes.
- ///
-
- [HarmonyPatch(typeof(Hediff_InsectEgg), "ProcessHumanLikeInsectEgg")]
- public class Patch_InsectEgg_BirthBaby_SetHiveGenes
- {
-
-
- [HarmonyPostfix]
- static void HandleHiveBasedInheritance(ref Thing __result)
- {
-
- // Check: Was the born thing a pawn?
- if (__result == null || !(__result is Pawn))
- {
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message("There was a birth of something non-human - not entering logic for queen-drone-xenotype inheritance.");
- return;
- }
-
- Pawn pawn = (Pawn)__result;
-
- // Important: Not all pawns have mother/father. Some Pawns are born in Growth-Vats or born from mod.
- bool hasQueenParent = TryFindParentQueenXenotype(pawn) != null;
- bool hasDroneParent = TryFindParentDroneXenotype(pawn) != null;
-
- if (hasQueenParent)
- {
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"PostFix PregnancyUtility::ApplyBirthOutcome - Checking Hive Inheritance because {pawn} has a queen parent.");
-
- XenotypeDef queenDef = TryFindParentQueenXenotype(pawn);
- HiveOffspringChanceDef hiveOffspringChanceDef = HiveUtility.LookupHiveInheritanceChances(queenDef);
-
- // Case 1: Mother is Queen, Father is something else. Produce Worker.
- if (!hasDroneParent)
- {
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"{pawn} was born as a worker, as it did not have Drone Father ({100}% chance)");
- MakeWorker(pawn, queenDef);
- }
- // Case 2: Mother is Queen, Father is drone. Apply xenotype as per chance.
- else
- {
- double roll = (new Random()).NextDouble();
- // Case 2.a: New Queen born
- if (roll < hiveOffspringChanceDef.queenChance)
- {
- pawn.genes.SetXenotype(queenDef);
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"{pawn} born as a new queen with xenotype {queenDef.defName} ({hiveOffspringChanceDef.queenChance * 100}% chance,rolled {roll})");
- // TODO: Make a letter ?
- }
- // Case 2.b: New Drone born
- else if (roll < hiveOffspringChanceDef.droneChance + hiveOffspringChanceDef.queenChance)
- {
- XenotypeDef droneDef = TryFindParentDroneXenotype(pawn);
- pawn.genes.SetXenotype(droneDef);
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"{pawn} born as a new drone with xenotype {droneDef.defName} ({(hiveOffspringChanceDef.droneChance + hiveOffspringChanceDef.queenChance) * 100}% chance,rolled {roll}))");
- }
- // Case 2.c: Worker
- else {
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message($"{pawn} born as a worker ({(hiveOffspringChanceDef.workerChance) * 100}% chance,rolled {roll}))");
- MakeWorker(pawn, queenDef);
- }
- }
- } else
- {
- if (RJW_Genes_Settings.rjw_genes_detailed_debug) ModLog.Message("There was an egg-birth without a (detected) queen-parent");
- }
- }
-
- ///
- /// Turns a given pawn into a worker, by looking up the relevant genes as per queen.
- ///
- /// If the queen xenotype has no mapping, the "rjw_genes_default_worker_xenotype" are used instead.
- /// The genes are added as endogenes, so the worker can still become a xenotype.
- ///
- /// The pawn for which the genes are added.
- /// The xenotype of the queen, used for lookup.
- private static void MakeWorker(Pawn pawnTobeWorker, XenotypeDef queenDef)
- {
- if (pawnTobeWorker == null)
- return;
-
- var mappings = HiveUtility.GetQueenWorkerMappings();
-
- var genes = mappings.TryGetValue(queenDef, HiveUtility.LookupDefaultWorkerGenes());
-
- foreach (var gene in genes)
- pawnTobeWorker.genes.AddGene(gene, false);
-
- }
-
- ///
- /// Looks up if there is a Xenotype with Drone-Gene for the pawns parents.
- /// This is to account that maybe father or mother are the drone (instead of hardcoding things for father).
- /// If both are drones, the mothers is returned.
- ///
- /// The pawn for whichs parent the xenotypes is looked up.
- /// The Drone-Xenotype of a parent or null. If both are drones, mothers are preferred.
- private static XenotypeDef TryFindParentDroneXenotype(Pawn pawn)
- {
- if (pawn == null)
- return null;
-
- var motherXenotype = HiveUtility.TryGetDroneXenotype(pawn.GetMother());
- var fatherXenotype = HiveUtility.TryGetDroneXenotype(pawn.GetFather());
-
- if (motherXenotype != null)
- return motherXenotype;
- if (fatherXenotype != null)
- return fatherXenotype;
-
- return null;
- }
-
-
- ///
- /// Looks up if there is a Xenotype with Queen-Gene for the pawns parents.
- /// This is to account that maybe father or mother are the queen (instead of hardcoding things for father).
- /// If both are queens, the mothers is returned.
- ///
- /// The pawn for whichs parent the xenotypes is looked up.
- /// The Queen-Xenotype of a parent or null. If both are queens, mothers are preferred.
- private static XenotypeDef TryFindParentQueenXenotype(Pawn pawn)
- {
- if (pawn == null)
- return null;
-
- var motherXenotype = HiveUtility.TryGetQueenXenotype(pawn.GetMother());
- var fatherXenotype = HiveUtility.TryGetQueenXenotype(pawn.GetFather());
-
- if (motherXenotype != null)
- return motherXenotype;
- if (fatherXenotype != null)
- return fatherXenotype;
-
- return null;
- }
- }
-}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index ff8360b..21e7967 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -47,7 +47,6 @@
-
diff --git a/Source/Settings/RJW_Genes_Settings.cs b/Source/Settings/RJW_Genes_Settings.cs
index f6e2f83..71cf028 100644
--- a/Source/Settings/RJW_Genes_Settings.cs
+++ b/Source/Settings/RJW_Genes_Settings.cs
@@ -17,7 +17,7 @@ namespace RJW_Genes
listing_Standard.ColumnWidth = rect.width / 2.05f;
listing_Standard.Begin(rect);
listing_Standard.Gap(24f);
- listing_Standard.Label("Fertilin-Gain from Animals" + ": " +
+ listing_Standard.Label("Fertlin-Gain from Animals" + ": " +
Math.Round((double)(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor * 100f), 0).ToString() + "%", -1f, "of fertilin gained (compared to human-baseline).");
RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor = listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, 0f, 3f);
diff --git a/TODOS.md b/TODOS.md
index c28f2ac..cdd40a5 100644
--- a/TODOS.md
+++ b/TODOS.md
@@ -20,9 +20,11 @@ Any help is very appreciated, even if it is just pointing me to existing similar
**Cum-Drugs** eating cum has an effect similar to Go-Juice (including (separate?) addiction)
+**Self-Fertilizing Eggs** Pawns fertilize eggs that are put inside them (with themselves as a parent)
+
**Death-Rest** until the pawn is cumflated.
-**STD Immunity** & maybe a potential to be carrier, but not suffer effects.
+**Alpha / Beta Genes** that you can only have one alpha, and the alpha makes mostly beta children (1:10). This might fit with the xenotypes below. As this is an RJW mod, this should also somewhat affect sex (e.g. betas cannot impregnate betas).
## Planned Xenotypes
@@ -37,6 +39,17 @@ Any help is very appreciated, even if it is just pointing me to existing similar
Can't help but think about Rexxar Porn now I am a bad person.
+**Hive Mother:**
+
+- [X] Spawn the small scarabs
+- [X] Fertilise Eggs inside her
+- [X] Produce cocoons
+- [] Maybe: Insert "dropped" Insect eggs
+- [] Very fragile, no use except breeding
+- [] Maybe: can only eat insect jelly
+- [X] Should look like a nice green-yellow alien as we all know fuckable insects would look like.
+- [X] There can only be one Hive Mother, some penalties if there are others. This could be implement with an "Alpha Gene" that gives heavy penalties when other Alpha exists.
+
## Genes with Abilities and more Effects
There were some suggestions on the Discord I saved them somewhere else. I am far away from making that work, but to have them here:
@@ -49,16 +62,4 @@ There were some suggestions on the Discord I saved them somewhere else. I am far
- Streamline Filenames / Names to either be LifeForce or Fertilin (e.g. `Hediffs_Fertilin.xml` but `Pawnkind_LifeForce.xml`). I think most things are called LifeForce.
- Similar cleanup for the patches, and make a note what to find where in the patches
-- Change Project structure to the 1.3, 1.4 Structure of other mods
-
-## Split:
-
-I plan to split this mod.
-Namely, I want to make a
-
-1. base-mod (with genitalia and size genes, anything alternating all base stats)
-2. bonus-mod, with Fertilin and other complex genes
-3. xenotype-mod (only xenotypes + scenarios)
-4. animal genes inheritance (Yes, bit of a meme that it was separate mod earlier)
-
-I first want to make a bit more content, and then I hope there will be a "breaking change" in RJW so I can also do a breaking change on top of that.
\ No newline at end of file
+- Change Project structure to the 1.3, 1.4 Structure of other mods
\ No newline at end of file