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…
Reference in a new issue