From 35a48ab67a6978874f6e0cb7cdf90b10ef6c2af0 Mon Sep 17 00:00:00 2001
From: Ed86 <email@email.com>
Date: Mon, 20 Jan 2020 20:09:19 +0200
Subject: [PATCH] comps from wip_sizes

---
 Source/Comps/CompRJWHediffBodyPart.cs | 121 ++++++++++++++++++++++++++
 Source/Comps/CompRJWThingBodyPart.cs  |  92 ++++++++++++++++++++
 2 files changed, 213 insertions(+)
 create mode 100644 Source/Comps/CompRJWHediffBodyPart.cs
 create mode 100644 Source/Comps/CompRJWThingBodyPart.cs

diff --git a/Source/Comps/CompRJWHediffBodyPart.cs b/Source/Comps/CompRJWHediffBodyPart.cs
new file mode 100644
index 000000000..145717a82
--- /dev/null
+++ b/Source/Comps/CompRJWHediffBodyPart.cs
@@ -0,0 +1,121 @@
+using System.Text;
+using Verse;
+
+namespace rjw
+{
+	public class CompHediffBodyPart : HediffComp
+	{
+		/// <summary>
+		/// Comp for rjw Thing parts.
+		/// </summary>
+
+		public string Size = "";			//eventually replace with below, maybe
+		//public float Size;
+		//public float Lenghth;
+		//public float Width;
+		public string Eggs = "";			//for ovi eggs, maybe
+		public string FluidType = "";	//cummies/milk - insectjelly/honey etc
+		public string FluidAmmount = ""; //ammount of Milk/Ejaculation/Wetness
+
+		public override string CompLabelInBracketsExtra
+		{
+			get
+			{
+				if (Size != "")
+					return Size;
+
+				return null;
+			}
+		}
+
+		public override void CompExposeData()
+		{
+			base.CompExposeData();
+			Scribe_Values.Look(ref Size, "Size", "", true);
+			Scribe_Values.Look(ref FluidType, "FluidType", "", true);
+			Scribe_Values.Look(ref FluidAmmount, "FluidAmmount", "", true);
+			Scribe_Values.Look(ref Eggs, "Eggs", "", true);
+		}
+
+		public override void CompPostMake()
+		{
+			//Log.Message("[RJW] CompPostMake " + xxx.get_pawnname(Pawn) + " " + parent.def.defName);
+			if (parent.def.defName.ToLower().Contains("breasts") || parent.def.defName.ToLower().Contains("udder"))
+			{
+				FluidType = "Milk";
+				FluidAmmount = "Average";
+				Size = "Average";
+			}
+			if (parent.def.defName.ToLower().Contains("penis") || parent.def.defName.ToLower().Contains("vagina"))
+			{
+				FluidType = "Cum";
+				if (parent.def.defName.ToLower().Contains("penis"))
+					FluidAmmount = "Average";
+				if (parent.def.defName.ToLower().Contains("vagina"))
+					FluidAmmount = "Average";
+
+				Size = "Average";
+			}
+			if (parent.def.defName.ToLower().Contains("anus"))
+			{
+				FluidType = "Dry";
+				FluidAmmount = "";
+				Size = "Average";
+			}
+			if (parent.def.defName.ToLower().Contains("ovi"))
+			{
+				Eggs = Pawn.kindDef.race.label;
+			}
+		}
+
+		public override string CompTipStringExtra
+		{
+			get
+			{
+				//Log.Message("[RJW] CompTipStringExtra " + xxx.get_pawnname(Pawn) + " " + parent.def.defName);
+				StringBuilder stringBuilder = new StringBuilder();
+				//if (parent.def.defName.ToLower().Contains("breasts") || parent.def.defName.ToLower().Contains("udder"))
+				//{
+				//	if (FluidType != "")
+				//		stringBuilder.AppendLine("Milk: " + FluidType);
+				//	if (FluidAmmount != "")
+				//		stringBuilder.AppendLine("Amount: " + FluidAmmount);
+				//	if (Size != "")
+				//		stringBuilder.AppendLine("Size: " + Size);//convert to Cups
+				//}
+				//if (parent.def.defName.ToLower().Contains("penis") || parent.def.defName.ToLower().Contains("vagina"))
+				//{
+				//	if (FluidType != "")
+				//		stringBuilder.AppendLine("Cum: " + FluidType);
+				//	if (FluidAmmount != "")
+				//	{
+				//		if (parent.def.defName.ToLower().Contains("penis"))
+				//			stringBuilder.AppendLine("Ejaculation: " + FluidAmmount);
+				//		if (parent.def.defName.ToLower().Contains("vagina"))
+				//			stringBuilder.AppendLine("Wetness: " + FluidAmmount);
+				//	}
+				//	if (Size != "")
+				//		stringBuilder.AppendLine("Size: " + Size);//convert to LxW
+				//}
+				//if (parent.def.defName.ToLower().Contains("anus"))
+				//{
+				//	if (FluidType != "")
+				//	{
+				//		stringBuilder.AppendLine("Lube: " + FluidType);
+				//		if (parent.def.defName.ToLower().Contains("anus"))
+				//			stringBuilder.AppendLine("Wetness: " + FluidAmmount);
+				//	}
+				//	if (Size != "")
+				//		stringBuilder.AppendLine("Size: " + Size);//convert to LxW someday
+				//}
+				if (parent.def.defName.ToLower().Contains("ovi"))
+				{
+					if (Eggs != "")
+						stringBuilder.AppendLine("Eggs: " + Eggs);
+				}
+
+				return stringBuilder.ToString();
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/Source/Comps/CompRJWThingBodyPart.cs b/Source/Comps/CompRJWThingBodyPart.cs
new file mode 100644
index 000000000..cd7767f52
--- /dev/null
+++ b/Source/Comps/CompRJWThingBodyPart.cs
@@ -0,0 +1,92 @@
+using System.Text;
+using Verse;
+
+namespace rjw
+{
+	public class CompThingBodyPart : ThingComp
+	{
+		/// <summary>
+		/// Comp for rjw Thing parts.
+		/// </summary>
+
+		public string Size = "";			//eventually replace with below, maybe
+		//public float Size;
+		//public float Lenghth;
+		//public float Width;
+		public string Eggs = "";			//for ovi eggs, maybe
+		public string FluidType = "";	//cummies/milk - insectjelly/honey etc
+		public string FluidAmmount = ""; //ammount of Milk/Ejaculation/Wetness
+
+		//public override string CompInspectStringExtra()
+		//{
+		//	return Translator.Translate("Size") + ": " + Size;
+		//}
+
+		//public override string TransformLabel(string label)
+		//{
+		//	if (Size != "")
+		//		return label + " (" + Size + ")";
+
+		//	return label;
+		//}
+
+		public override string GetDescriptionPart()
+		{
+			StringBuilder stringBuilder = new StringBuilder();
+			stringBuilder.AppendLine(base.GetDescriptionPart());
+			if (parent.def.defName.ToLower().Contains("breasts") || parent.def.defName.ToLower().Contains("udder"))
+			{
+				//if (FluidType == "")
+				//{
+				//	FluidType = "Milk";
+				//	FluidAmmount = "none";
+				//}
+				//stringBuilder.AppendLine("Milk: " + FluidType);
+				//stringBuilder.AppendLine("Amount: " + FluidAmmount);
+
+				if (Size == "")
+				{
+					Size = "Average";
+				}
+				stringBuilder.AppendLine("Size: " + Size);//convert to Cups
+			}
+			if (parent.def.defName.ToLower().Contains("penis") || parent.def.defName.ToLower().Contains("vagina"))
+			{
+				//if (FluidType == "")
+				//{
+				//	FluidType = "Cum";
+				//	FluidAmmount = "Average";
+				//}
+				//stringBuilder.AppendLine("Cum: " + FluidType);
+				//if (parent.def.defName.ToLower().Contains("penis"))
+				//	stringBuilder.AppendLine("Ejaculation: " + FluidAmmount);
+				//if (parent.def.defName.ToLower().Contains("vagina"))
+				//	stringBuilder.AppendLine("Wetness: " + FluidAmmount);
+
+				if (Size == "")
+				{
+					Size = "Average";
+				}
+				stringBuilder.AppendLine("Size: " + Size);//convert to LxW
+			}
+			if (parent.def.defName.ToLower().Contains("anus"))
+			{
+				//if (FluidType == "")
+				//{
+				//	FluidType = "Dry";
+				//	FluidAmmount = "Dry";
+				//}
+				if (Size == "")
+				{
+					Size = "Average";
+				}
+				stringBuilder.AppendLine("Size: " + Size);//convert to LxW
+			}
+			if (parent.def.defName.ToLower().Contains("ovi"))
+				if (Eggs != "")
+					stringBuilder.AppendLine("Eggs: " + Eggs);
+
+			return stringBuilder.ToString();
+		}
+	}
+}
\ No newline at end of file
-- 
GitLab