mirror of
				https://github.com/amevarashi/RJW-Sexperience.git
				synced 2024-08-14 23:54:08 +00:00 
			
		
		
		
	1.0.2.2
This commit is contained in:
		
							parent
							
								
									3f94c3b94d
								
							
						
					
					
						commit
						72dfde81d9
					
				
					 11 changed files with 184 additions and 21 deletions
				
			
		| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 | 
			
		||||
<Manifest>
 | 
			
		||||
	<identifier>RJW Sexperience</identifier>
 | 
			
		||||
	<version>1.0.2.1</version>
 | 
			
		||||
	<version>1.0.2.2</version>
 | 
			
		||||
	<dependencies>
 | 
			
		||||
	</dependencies>
 | 
			
		||||
	<incompatibleWith />
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -55,6 +55,9 @@
 | 
			
		|||
  <RS_CumAddictiveness>Cum addictiveness</RS_CumAddictiveness>
 | 
			
		||||
  <RS_CumAddictiveness_Tooltip>More likely to get addicted to cum.</RS_CumAddictiveness_Tooltip>
 | 
			
		||||
  <RS_NumofTimes>times</RS_NumofTimes>
 | 
			
		||||
  <RS_Ago>ago</RS_Ago>
 | 
			
		||||
  <RS_LastSex>last sex</RS_LastSex>
 | 
			
		||||
  <RS_HadBestSexDaysAgo>Had best sex {0}.</RS_HadBestSexDaysAgo>
 | 
			
		||||
 | 
			
		||||
  <RSOption_1_Label>Enable record randomizer</RSOption_1_Label>
 | 
			
		||||
  <RSOption_1_Desc>Randomize pawn's sex records.</RSOption_1_Desc>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,6 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<LanguageData>
 | 
			
		||||
  <Sex.description>상대를 보내버리는 기술</Sex.description>
 | 
			
		||||
  <Sex.skillLabel>섹스</Sex.skillLabel>
 | 
			
		||||
  <Sex.label>섹스</Sex.label>
 | 
			
		||||
</LanguageData>
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +83,15 @@
 | 
			
		|||
  <Virgin_Shameful_Taken.stages.2.description>드디어!</Virgin_Shameful_Taken.stages.2.description>
 | 
			
		||||
  <Virgin_OnlyForSpouse_Know_Taken.stages.0.description>걸레</Virgin_OnlyForSpouse_Know_Taken.stages.0.description>
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  <CumWithdrawal.stages.1.label>정액 금단증상</CumWithdrawal.stages.1.label>
 | 
			
		||||
  <CumWithdrawal.stages.1.description>정액이 필요해.</CumWithdrawal.stages.1.description>
 | 
			
		||||
 | 
			
		||||
  <AteCum.stages.0.label>정액을 먹음</AteCum.stages.0.label>
 | 
			
		||||
  <AteCum.stages.0.description>역겨워.</AteCum.stages.0.description>
 | 
			
		||||
  <AteCum.stages.1.label>정액을 먹음</AteCum.stages.1.label>
 | 
			
		||||
  <AteCum.stages.1.descrption>냄새나고 맛없어.</AteCum.stages.1.descrption>
 | 
			
		||||
  <AteCum.stages.2.label>정액을 먹음</AteCum.stages.2.label>
 | 
			
		||||
  <AteCum.stages.2.description>맛없지만 좋아.</AteCum.stages.2.description>
 | 
			
		||||
  <AteCum.stages.3.label>정액을 먹음</AteCum.stages.3.label>
 | 
			
		||||
  <AteCum.stages.3.description>맛있어.</AteCum.stages.3.description>
 | 
			
		||||
</LanguageData>
 | 
			
		||||
| 
						 | 
				
			
			@ -18,6 +18,7 @@ namespace RJWSexperience
 | 
			
		|||
        public static string RS_LostVirgin(string pawn, string partner) => "RS_LostVirgin".Translate(pawn.Colorize(Color.yellow),partner.Colorize(Color.yellow));
 | 
			
		||||
        public static string RS_Sex_Info(string sextype, string sexcount) => "RS_Sex_Info".Translate(sextype, sexcount);
 | 
			
		||||
        public static string RS_SAT_AVG(string avgsat) => "RS_SAT_AVG".Translate(avgsat);
 | 
			
		||||
        public static string RS_HadBestSexDaysAgo(string days) => "RS_HadBestSexDaysAgo".Translate(days);
 | 
			
		||||
 | 
			
		||||
        public static readonly string Mod_Title = "RS_Mod_Title".Translate();
 | 
			
		||||
        public static readonly string SlaveStatFactorDefault = "SlaveStatFactorDefault".Translate();
 | 
			
		||||
| 
						 | 
				
			
			@ -72,6 +73,8 @@ namespace RJWSexperience
 | 
			
		|||
        public static readonly string RS_CumAddictiveness = "RS_CumAddictiveness".Translate();
 | 
			
		||||
        public static readonly string RS_CumAddictiveness_Tooltip = "RS_CumAddictiveness_Tooltip".Translate();
 | 
			
		||||
        public static readonly string RS_NumofTimes = "RS_NumofTimes".Translate();
 | 
			
		||||
        public static readonly string RS_Ago = "RS_Ago".Translate();
 | 
			
		||||
        public static readonly string RS_LastSex = "RS_LastSex".Translate();
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        public static readonly string Option_1_Label = "RSOption_1_Label".Translate();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -191,7 +191,7 @@ namespace RJWSexperience
 | 
			
		|||
    {
 | 
			
		||||
        public static void Postfix(Pawn pawn, ref Job __result)
 | 
			
		||||
        {
 | 
			
		||||
            if (RJWPreferenceSettings.FapEverywhere && __result != null)
 | 
			
		||||
            if (RJWPreferenceSettings.FapEverywhere && (pawn.Faction?.IsPlayer ?? false) && __result != null)
 | 
			
		||||
            {
 | 
			
		||||
                Building_CumBucket bucket = pawn.FindClosestBucket();
 | 
			
		||||
                if (bucket != null)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,11 +24,13 @@ namespace RJWSexperience
 | 
			
		|||
        protected string recentpartner = "";
 | 
			
		||||
        protected int[] sextypecount = new int[ARRLEN];
 | 
			
		||||
        protected float[] sextypesat = new float[ARRLEN];
 | 
			
		||||
        protected int[] sextyperecenttickabs = new int[ARRLEN];
 | 
			
		||||
        protected int virginstaken = 0;
 | 
			
		||||
        protected int incestuous = 0;
 | 
			
		||||
        protected int bestiality = 0;
 | 
			
		||||
        protected int corpsefuck = 0;
 | 
			
		||||
        protected int interspecies = 0;
 | 
			
		||||
        protected int firstsextickabs = 0;
 | 
			
		||||
 | 
			
		||||
        protected string mostpartnercache = "";
 | 
			
		||||
        protected xxx.rjwSextype mostsextypecache = xxx.rjwSextype.None;
 | 
			
		||||
| 
						 | 
				
			
			@ -43,11 +45,15 @@ namespace RJWSexperience
 | 
			
		|||
        protected int preferracesexcountcache = 0;
 | 
			
		||||
        protected Pawn preferracepawncache = null;
 | 
			
		||||
        protected float avtsatcache = 0;
 | 
			
		||||
        protected int recentsextickabscache = 0;
 | 
			
		||||
        protected int mostsextickabscache = 0;
 | 
			
		||||
        protected int bestsextickabscache = 0;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        private List<SexHistory> partnerlistcache;
 | 
			
		||||
        private List<int> sextypecountsave;
 | 
			
		||||
        private List<float> sextypesatsave;
 | 
			
		||||
        private List<int> sextyperecenttickabssave;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public SexHistory GetFirstPartnerHistory
 | 
			
		||||
| 
						 | 
				
			
			@ -198,6 +204,68 @@ namespace RJWSexperience
 | 
			
		|||
                return sextypesat.Sum() / totalsexcache;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public int RecentSexElapsedTicks
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return GenTicks.TicksAbs - recentsextickabscache;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string RecentSexDays
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (recentsextickabscache != 0) return GenDate.ToStringTicksToDays(RecentSexElapsedTicks) + " " + Keyed.RS_Ago;
 | 
			
		||||
                return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public int FirstSexElapsedTicks
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return GenTicks.TicksAbs - firstsextickabs;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string FirstSexDays
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (firstsextickabs != 0) return GenDate.ToStringTicksToDays(FirstSexElapsedTicks) + " " + Keyed.RS_Ago;
 | 
			
		||||
                return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public int MostSexElapsedTicks
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return GenTicks.TicksAbs - mostsextickabscache;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string MostSexDays
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (mostsextickabscache != 0) return GenDate.ToStringTicksToDays(MostSexElapsedTicks) + " " + Keyed.RS_Ago;
 | 
			
		||||
                return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public int BestSexElapsedTicks
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return GenTicks.TicksAbs - bestsextickabscache;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string BestSexDays
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (bestsextickabscache != 0) return GenDate.ToStringTicksToDays(BestSexElapsedTicks) + " " + Keyed.RS_Ago;
 | 
			
		||||
                return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public Texture GetPreferRaceIcon(Vector2 size)
 | 
			
		||||
        {
 | 
			
		||||
            Update();
 | 
			
		||||
| 
						 | 
				
			
			@ -220,6 +288,13 @@ namespace RJWSexperience
 | 
			
		|||
            return recentsat;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public string SextypeRecentDays(int sextype)
 | 
			
		||||
        {
 | 
			
		||||
            int index = (int)sextype;
 | 
			
		||||
            if (sextyperecenttickabs[index] != 0) return GenDate.ToStringTicksToDays(GenTicks.TicksAbs - sextyperecenttickabs[index]) + " " + Keyed.RS_Ago;
 | 
			
		||||
            return Keyed.Unknown;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public SexHistory this[Pawn pawn]
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
| 
						 | 
				
			
			@ -253,6 +328,7 @@ namespace RJWSexperience
 | 
			
		|||
            {
 | 
			
		||||
                sextypecountsave = sextypecount.ToList();
 | 
			
		||||
                sextypesatsave = sextypesat.ToList();
 | 
			
		||||
                sextyperecenttickabssave = sextyperecenttickabs.ToList();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Scribe_Collections.Look(ref histories, "histories", LookMode.Value, LookMode.Deep);
 | 
			
		||||
| 
						 | 
				
			
			@ -265,14 +341,17 @@ namespace RJWSexperience
 | 
			
		|||
            Scribe_Values.Look(ref bestiality, "bestiality", bestiality, true);
 | 
			
		||||
            Scribe_Values.Look(ref corpsefuck, "corpsefuck", corpsefuck, true);
 | 
			
		||||
            Scribe_Values.Look(ref interspecies, "interspecies", interspecies, true);
 | 
			
		||||
            Scribe_Values.Look(ref firstsextickabs, "firstsextickabs", firstsextickabs, true);
 | 
			
		||||
            Scribe_Collections.Look(ref sextypecountsave, "sextypecountsave", LookMode.Value);
 | 
			
		||||
            Scribe_Collections.Look(ref sextypesatsave, "sextypesatsave", LookMode.Value);
 | 
			
		||||
            Scribe_Collections.Look(ref sextyperecenttickabssave, "sextyperecenttickabssave", LookMode.Value);
 | 
			
		||||
            //Scribe_Values.Look(ref sextypecount, "sextypecount", new int[ARRLEN], true); // not work
 | 
			
		||||
            //Scribe_Values.Look(ref sextypesat, "sextypesat", new float[ARRLEN], true);
 | 
			
		||||
            if (Scribe.mode == LoadSaveMode.LoadingVars)
 | 
			
		||||
            {
 | 
			
		||||
                sextypecount = sextypecountsave?.ToArray() ?? new int[ARRLEN];
 | 
			
		||||
                sextypesat = sextypesatsave?.ToArray() ?? new float[ARRLEN];
 | 
			
		||||
                sextyperecenttickabs = sextyperecenttickabssave?.ToArray() ?? new int[ARRLEN];
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (histories == null) histories = new Dictionary<string, SexHistory>();
 | 
			
		||||
| 
						 | 
				
			
			@ -290,6 +369,7 @@ namespace RJWSexperience
 | 
			
		|||
            history?.RecordSex(props);
 | 
			
		||||
            recentsex = props.sexType;
 | 
			
		||||
            sextypecount[(int)props.sexType]++;
 | 
			
		||||
            sextyperecenttickabs[(int)props.sexType] = GenTicks.TicksAbs;
 | 
			
		||||
            if (partner.IsIncest(pawn)) incestuous++;
 | 
			
		||||
            if (partner.Dead) corpsefuck++;
 | 
			
		||||
            if (props.IsBestiality()) bestiality++;
 | 
			
		||||
| 
						 | 
				
			
			@ -331,6 +411,7 @@ namespace RJWSexperience
 | 
			
		|||
                TryAddHistory(partner);
 | 
			
		||||
                first = partner.ThingID;
 | 
			
		||||
                SexPartnerHistory history = partner.GetPartnerHistory();
 | 
			
		||||
                firstsextickabs = GenTicks.TicksAbs;
 | 
			
		||||
                if (history != null)
 | 
			
		||||
                {
 | 
			
		||||
                    history.TakeSomeonesVirgin(parent as Pawn);
 | 
			
		||||
| 
						 | 
				
			
			@ -366,6 +447,7 @@ namespace RJWSexperience
 | 
			
		|||
            int maxindex = 0;
 | 
			
		||||
            string mostID = Keyed.Unknown;
 | 
			
		||||
            string bestID = Keyed.Unknown;
 | 
			
		||||
            
 | 
			
		||||
            totalsexcache = 0;
 | 
			
		||||
            totalrapedcache = 0;
 | 
			
		||||
            totalbeenrapedcache = 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -431,6 +513,10 @@ namespace RJWSexperience
 | 
			
		|||
            mostpartnercache = mostID;
 | 
			
		||||
            bestpartnercache = bestID;
 | 
			
		||||
 | 
			
		||||
            recentsextickabscache = histories.TryGetValue(recentpartner)?.RecentSexTickAbs ?? 0;
 | 
			
		||||
            mostsextickabscache = histories.TryGetValue(mostpartnercache)?.RecentSexTickAbs ?? 0;
 | 
			
		||||
            bestsextickabscache = histories.TryGetValue(bestpartnercache)?.BestSexTickAbs ?? 0;
 | 
			
		||||
 | 
			
		||||
            racetotalsat.Clear();
 | 
			
		||||
            allpartners.Clear();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -492,6 +578,8 @@ namespace RJWSexperience
 | 
			
		|||
        protected float bestsatisfaction = 0;
 | 
			
		||||
        protected bool itookvirgin = false;
 | 
			
		||||
        protected bool incest = false;
 | 
			
		||||
        protected int recentsextickabs = 0;
 | 
			
		||||
        protected int bestsextickabs = 0;
 | 
			
		||||
 | 
			
		||||
        public string Label
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -578,7 +666,35 @@ namespace RJWSexperience
 | 
			
		|||
                return rapedme;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public int RecentSexTickAbs
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return recentsextickabs;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public int BestSexTickAbs
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return bestsextickabs;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public int BestSexElapsedTicks
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                return GenTicks.TicksAbs - bestsextickabs;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string BestSexDays
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
                if (bestsextickabs != 0) return Keyed.RS_HadBestSexDaysAgo(GenDate.ToStringTicksToDays(BestSexElapsedTicks) + " " + Keyed.RS_Ago);
 | 
			
		||||
                return "";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public SexHistory() { }
 | 
			
		||||
 | 
			
		||||
        public SexHistory(Pawn pawn, bool incest = false)
 | 
			
		||||
| 
						 | 
				
			
			@ -601,6 +717,8 @@ namespace RJWSexperience
 | 
			
		|||
            Scribe_Values.Look(ref bestsatisfaction, "bestsatisfaction", bestsatisfaction, true);
 | 
			
		||||
            Scribe_Values.Look(ref itookvirgin, "itookvirgin", itookvirgin, true);
 | 
			
		||||
            Scribe_Values.Look(ref incest, "incest", incest, true);
 | 
			
		||||
            Scribe_Values.Look(ref recentsextickabs, "recentsextickabs", recentsextickabs, true);
 | 
			
		||||
            Scribe_Values.Look(ref bestsextickabs, "bestsextickabs", bestsextickabs, true);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void RecordSex(SexProps props)
 | 
			
		||||
| 
						 | 
				
			
			@ -617,6 +735,8 @@ namespace RJWSexperience
 | 
			
		|||
                    raped++;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            recentsextickabs = GenTicks.TicksAbs;
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public void RecordSatisfaction(SexProps props, float satisfaction)
 | 
			
		||||
| 
						 | 
				
			
			@ -626,6 +746,7 @@ namespace RJWSexperience
 | 
			
		|||
                orgasms++;
 | 
			
		||||
                bestsextype = props.sexType;
 | 
			
		||||
                bestsatisfaction = satisfaction;
 | 
			
		||||
                bestsextickabs = GenTicks.TicksAbs;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -81,9 +81,18 @@ namespace RJWSexperience.UI
 | 
			
		|||
 | 
			
		||||
		public static string GetStatExplanation(Pawn pawn, StatDef stat, float val)
 | 
			
		||||
        {
 | 
			
		||||
			if (!pawn.Dead)
 | 
			
		||||
			return stat.description + "\n" +
 | 
			
		||||
				stat.Worker.GetExplanationFull(StatRequest.For(pawn), ToStringNumberSense.Undefined, val);
 | 
			
		||||
			return "Dead".Translate();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		public static string GetSexDays(int absticks, bool printUnknown = false)
 | 
			
		||||
        {
 | 
			
		||||
			if (absticks != 0) return GenDate.ToStringTicksToDays(GenTicks.TicksAbs - absticks) + " " + Keyed.RS_Ago;
 | 
			
		||||
			else if (printUnknown) return Keyed.Unknown;
 | 
			
		||||
			else return "";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -212,9 +212,10 @@ namespace RJWSexperience.UI
 | 
			
		|||
                FillableBarLabeled(bestsexRect,String.Format(Keyed.RS_Best_Sextype+": {0}", Keyed.Sextype[(int)history.BestSextype]), p / 2, HistoryUtility.SextypeColor[(int)history.BestSextype], Texture2D.blackTexture, null, String.Format("{0:P2}", p));
 | 
			
		||||
 | 
			
		||||
                if (history.IamFirst) str += "\n" + Keyed.RS_LostVirgin(history.Label, pawn.LabelShort);
 | 
			
		||||
                
 | 
			
		||||
                str += "\n" + history.BestSexDays;
 | 
			
		||||
 | 
			
		||||
                TooltipHandler.TipRegion(rect, str);
 | 
			
		||||
                
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -226,11 +227,12 @@ namespace RJWSexperience.UI
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected void DrawSexInfoCard(Rect rect, SexHistory history, string label, string tooltip)
 | 
			
		||||
        protected void DrawSexInfoCard(Rect rect, SexHistory history, string label, string tooltip, string rightlabel = "")
 | 
			
		||||
        {
 | 
			
		||||
            Rect labelRect = new Rect(rect.x, rect.y, rect.width, FONTHEIGHT);
 | 
			
		||||
            Rect infoRect = new Rect(rect.x, rect.y + FONTHEIGHT, rect.width, rect.height - FONTHEIGHT);
 | 
			
		||||
            GUI.Label(labelRect, label, fontstyleleft);
 | 
			
		||||
            GUI.Label(labelRect, rightlabel, fontstyleright);
 | 
			
		||||
            DrawInfoWithPortrait(infoRect,history, tooltip);
 | 
			
		||||
            
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -243,10 +245,10 @@ namespace RJWSexperience.UI
 | 
			
		|||
        {
 | 
			
		||||
            Listing_Standard listmain = new Listing_Standard();
 | 
			
		||||
            listmain.Begin(rect.ContractedBy(4f));
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetRecentPartnersHistory, Keyed.RS_Recent_Sex_Partner, Keyed.RS_Recent_Sex_Partner_ToolTip);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetFirstPartnerHistory, Keyed.RS_First_Sex_Partner, Keyed.RS_First_Sex_Partner_ToolTip);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetMostPartnerHistory, Keyed.RS_Most_Sex_Partner, Keyed.RS_Most_Sex_Partner_ToolTip);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetBestSexPartnerHistory, Keyed.RS_Best_Sex_Partner, Keyed.RS_Best_Sex_Partner_ToolTip);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetRecentPartnersHistory, Keyed.RS_Recent_Sex_Partner, Keyed.RS_Recent_Sex_Partner_ToolTip, history.RecentSexDays);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetFirstPartnerHistory, Keyed.RS_First_Sex_Partner, Keyed.RS_First_Sex_Partner_ToolTip, history.FirstSexDays);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetMostPartnerHistory, Keyed.RS_Most_Sex_Partner, Keyed.RS_Most_Sex_Partner_ToolTip, history.MostSexDays);
 | 
			
		||||
            DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), history.GetBestSexPartnerHistory, Keyed.RS_Best_Sex_Partner, Keyed.RS_Best_Sex_Partner_ToolTip, history.BestSexDays);
 | 
			
		||||
            GUI.Label(listmain.GetRect(FONTHEIGHT), Keyed.RS_PreferRace, fontstyleleft);
 | 
			
		||||
            DrawPreferRace(listmain.GetRect(66f+15f));
 | 
			
		||||
            listmain.GetRect(15f);
 | 
			
		||||
| 
						 | 
				
			
			@ -354,11 +356,11 @@ namespace RJWSexperience.UI
 | 
			
		|||
 | 
			
		||||
            tmp = listmain.GetRect(FONTHEIGHT);
 | 
			
		||||
            p = pawn.records.GetValue(VariousDefOf.Lust);
 | 
			
		||||
            FillableBarLabeled(tmp, String.Format(Keyed.Lust +": {0:0.00}", p), Mathf.Clamp01(p.Normalization(-Configurations.LustLimit*3, Configurations.LustLimit*3)), HistoryUtility.Slaanesh, Texture2D.blackTexture, null, String.Format(xxx.sex_drive_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.GetStatValue(xxx.sex_drive_stat)));
 | 
			
		||||
            FillableBarLabeled(tmp, String.Format(Keyed.Lust +": {0:0.00}", p), Mathf.Clamp01(p.Normalization(-Configurations.LustLimit*3, Configurations.LustLimit*3)), HistoryUtility.Slaanesh, Texture2D.blackTexture, null, String.Format(xxx.sex_drive_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.Dead ? 0 : pawn.GetStatValue(xxx.sex_drive_stat)));
 | 
			
		||||
            listmain.Gap(1f);
 | 
			
		||||
            if (Mouse.IsOver(tmp))
 | 
			
		||||
            {
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.sex_drive_stat, pawn.GetStatValue(xxx.sex_drive_stat)));
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.sex_drive_stat, pawn.Dead ? 0 : pawn.GetStatValue(xxx.sex_drive_stat)));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            p = history.GetBestSextype(out xxx.rjwSextype sextype) / BASESAT;
 | 
			
		||||
| 
						 | 
				
			
			@ -414,27 +416,27 @@ namespace RJWSexperience.UI
 | 
			
		|||
            if (p < history.BeenRapedCount)
 | 
			
		||||
            {
 | 
			
		||||
                p = history.BeenRapedCount;
 | 
			
		||||
                FillableBarLabeled(tmp, String.Format(Keyed.RS_BeenRaped + ": {0}", p), p / 50, Texture2D.grayTexture, Texture2D.blackTexture, null, String.Format(xxx.vulnerability_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.GetStatValue(xxx.vulnerability_stat)));
 | 
			
		||||
                FillableBarLabeled(tmp, String.Format(Keyed.RS_BeenRaped + ": {0}", p), p / 50, Texture2D.grayTexture, Texture2D.blackTexture, null, String.Format(xxx.vulnerability_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.Dead ? 0 : pawn.GetStatValue(xxx.vulnerability_stat)));
 | 
			
		||||
                listmain.Gap(1f);
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                FillableBarLabeled(tmp, String.Format(Keyed.RS_RapedSomeone + ": {0}", p), p / 50, HistoryUtility.Khorne, Texture2D.blackTexture, null, String.Format(xxx.vulnerability_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.GetStatValue(xxx.vulnerability_stat)));
 | 
			
		||||
                FillableBarLabeled(tmp, String.Format(Keyed.RS_RapedSomeone + ": {0}", p), p / 50, HistoryUtility.Khorne, Texture2D.blackTexture, null, String.Format(xxx.vulnerability_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.Dead ? 0 : pawn.GetStatValue(xxx.vulnerability_stat)));
 | 
			
		||||
                listmain.Gap(1f);
 | 
			
		||||
            }
 | 
			
		||||
            if (Mouse.IsOver(tmp))
 | 
			
		||||
            {
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.vulnerability_stat, pawn.GetStatValue(xxx.vulnerability_stat)));
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.vulnerability_stat, pawn.Dead ? 0 : pawn.GetStatValue(xxx.vulnerability_stat)));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            p = pawn.GetStatValue(xxx.sex_satisfaction);
 | 
			
		||||
            p = pawn.Dead ? 0 : pawn.GetStatValue(xxx.sex_satisfaction);
 | 
			
		||||
            tmp = listmain.GetRect(FONTHEIGHT);
 | 
			
		||||
            FillableBarLabeled(tmp, String.Format(xxx.sex_satisfaction.LabelCap.CapitalizeFirst() + ": {0:P2}", p), p/2, HistoryUtility.Satisfaction, Texture2D.blackTexture);
 | 
			
		||||
            listmain.Gap(1f);
 | 
			
		||||
            if (Mouse.IsOver(tmp))
 | 
			
		||||
            {
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.sex_satisfaction, pawn.GetStatValue(xxx.sex_satisfaction)));
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.sex_satisfaction, pawn.Dead ? 0 : pawn.GetStatValue(xxx.sex_satisfaction)));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //p = pawn.GetStatValue(xxx.vulnerability_stat);
 | 
			
		||||
| 
						 | 
				
			
			@ -444,16 +446,16 @@ namespace RJWSexperience.UI
 | 
			
		|||
            SkillRecord skill = pawn.skills?.GetSkill(VariousDefOf.SexSkill);
 | 
			
		||||
            p = skill?.Level ?? 0;
 | 
			
		||||
            tmp = listmain.GetRect(FONTHEIGHT);
 | 
			
		||||
            FillableBarLabeled(tmp, String.Format(Keyed.RS_SexSkill + ": {0}, {1:P2}", p, skill?.xpSinceLastLevel/ skill?.XpRequiredForLevelUp), p / 20, HistoryUtility.Tzeentch, Texture2D.blackTexture, null, String.Format(xxx.sex_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.GetStatValue(xxx.sex_stat)), HistoryUtility.PassionBG[(int)(skill?.passion ?? 0)]);
 | 
			
		||||
            FillableBarLabeled(tmp, String.Format(Keyed.RS_SexSkill + ": {0}, {1:P2}", p, skill?.xpSinceLastLevel/ skill?.XpRequiredForLevelUp), p / 20, HistoryUtility.Tzeentch, Texture2D.blackTexture, null, String.Format(xxx.sex_stat.LabelCap.CapitalizeFirst() + ": {0:P2}", pawn.Dead ? 0 : pawn.GetStatValue(xxx.sex_stat)), HistoryUtility.PassionBG[(int)(skill?.passion ?? 0)]);
 | 
			
		||||
            if (Mouse.IsOver(tmp))
 | 
			
		||||
            {
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.sex_stat, pawn.GetStatValue(xxx.sex_stat)));
 | 
			
		||||
                TooltipHandler.TipRegion(tmp, RJWUIUtility.GetStatExplanation(pawn, xxx.sex_stat, pawn.Dead ? 0 : pawn.GetStatValue(xxx.sex_stat)));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            listmain.Gap(1f);
 | 
			
		||||
 | 
			
		||||
            if (selectedPawn != null) DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), selectedPawn, Keyed.RS_Selected_Partner, Keyed.RS_Selected_Partner);
 | 
			
		||||
            if (selectedPawn != null) DrawSexInfoCard(listmain.GetRect(CARDHEIGHT), selectedPawn, Keyed.RS_Selected_Partner, Keyed.RS_Selected_Partner, RJWUIUtility.GetSexDays(selectedPawn.RecentSexTickAbs));
 | 
			
		||||
            else DrawExtraInfo(listmain.GetRect(CARDHEIGHT));
 | 
			
		||||
            
 | 
			
		||||
            listmain.End();
 | 
			
		||||
| 
						 | 
				
			
			@ -498,7 +500,13 @@ namespace RJWSexperience.UI
 | 
			
		|||
                int sexindex = Sextype[i];
 | 
			
		||||
                p = history.GetAVGSat(sexindex) / BASESAT;
 | 
			
		||||
                string label = Keyed.RS_Sex_Info(Keyed.Sextype[sexindex], history.GetSexCount(sexindex).ToString());
 | 
			
		||||
                FillableBarLabeled(listmain.GetRect(FONTHEIGHT),label, p / 2, HistoryUtility.SextypeColor[sexindex], Texture2D.blackTexture, null, Keyed.RS_SAT_AVG(String.Format("{0:P2}", p)));
 | 
			
		||||
                Rect tmpRect = listmain.GetRect(FONTHEIGHT);
 | 
			
		||||
                FillableBarLabeled(tmpRect,label, p / 2, HistoryUtility.SextypeColor[sexindex], Texture2D.blackTexture, null, Keyed.RS_SAT_AVG(String.Format("{0:P2}", p)));
 | 
			
		||||
                if (Mouse.IsOver(tmpRect))
 | 
			
		||||
                {
 | 
			
		||||
                    TooltipHandler.TipRegion(tmpRect, Keyed.RS_LastSex.CapitalizeFirst() + ": " + history.SextypeRecentDays(Sextype[i]));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                listmain.Gap(1f);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
Version Beta 1.0.2.2
 | 
			
		||||
 - non-player faction pawns no longer use cum buckets
 | 
			
		||||
 - fixed sex history error with dead pawns
 | 
			
		||||
 - added recent sex time
 | 
			
		||||
 | 
			
		||||
Version Beta 1.0.2.1
 | 
			
		||||
 - messages about virginity loss will not be shown if the record randomizer is off
 | 
			
		||||
 - fixed rituals not worked properly
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue