mirror of
https://gitgud.io/c0ffeeeeeeee/rjw-events.git
synced 2024-08-14 23:57:42 +00:00
Add psychic lust mechanic, works like psychic drone
This commit is contained in:
parent
06122c2b18
commit
60a4205e6f
11 changed files with 383 additions and 0 deletions
123
Source/GameConditions/GameCondition_PsychicArouse.cs
Normal file
123
Source/GameConditions/GameCondition_PsychicArouse.cs
Normal file
|
@ -0,0 +1,123 @@
|
|||
using RimWorld;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
using Verse.Grammar;
|
||||
|
||||
namespace RJW_Events
|
||||
{
|
||||
public class GameCondition_PsychicArouse : GameCondition
|
||||
{
|
||||
// Token: 0x17000EA2 RID: 3746
|
||||
// (get) Token: 0x06005437 RID: 21559 RVA: 0x001C44F0 File Offset: 0x001C26F0
|
||||
public override string Label
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.level == PsychicDroneLevel.GoodMedium)
|
||||
{
|
||||
return this.def.label + ": " + this.gender.GetLabel(false).CapitalizeFirst();
|
||||
}
|
||||
if (this.gender != Gender.None)
|
||||
{
|
||||
return string.Concat(new string[]
|
||||
{
|
||||
this.def.label,
|
||||
": ",
|
||||
this.level.GetLabel().CapitalizeFirst(),
|
||||
" (",
|
||||
this.gender.GetLabel(false).ToLower(),
|
||||
")"
|
||||
});
|
||||
}
|
||||
return this.def.label + ": " + this.level.GetLabel().CapitalizeFirst();
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000EA3 RID: 3747
|
||||
// (get) Token: 0x06005438 RID: 21560 RVA: 0x001C45B4 File Offset: 0x001C27B4
|
||||
public override string LetterText
|
||||
{
|
||||
get
|
||||
{
|
||||
if (this.level == PsychicDroneLevel.GoodMedium)
|
||||
{
|
||||
return this.def.letterText.Formatted(this.gender.GetLabel(false).ToLower());
|
||||
}
|
||||
return this.def.letterText.Formatted(this.gender.GetLabel(false).ToLower(), this.level.GetLabel());
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000EA4 RID: 3748
|
||||
// (get) Token: 0x06005439 RID: 21561 RVA: 0x001C4631 File Offset: 0x001C2831
|
||||
public override string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return base.Description.Formatted(this.gender.GetLabel(false).ToLower());
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x0600543A RID: 21562 RVA: 0x001C4659 File Offset: 0x001C2859
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
this.level = this.def.defaultDroneLevel;
|
||||
}
|
||||
|
||||
// Token: 0x0600543B RID: 21563 RVA: 0x001C4674 File Offset: 0x001C2874
|
||||
public override void RandomizeSettings(float points, Map map, List<Rule> outExtraDescriptionRules, Dictionary<string, string> outExtraDescriptionConstants)
|
||||
{
|
||||
if (this.def.defaultDroneLevel == PsychicDroneLevel.GoodMedium)
|
||||
{
|
||||
this.level = PsychicDroneLevel.GoodMedium;
|
||||
}
|
||||
else if (points < 800f)
|
||||
{
|
||||
this.level = PsychicDroneLevel.BadLow;
|
||||
}
|
||||
else if (points < 2000f)
|
||||
{
|
||||
this.level = PsychicDroneLevel.BadMedium;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.level = PsychicDroneLevel.BadHigh;
|
||||
}
|
||||
if (map.mapPawns.FreeColonistsCount > 0)
|
||||
{
|
||||
this.gender = map.mapPawns.FreeColonists.RandomElement<Pawn>().gender;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.gender = Rand.Element<Gender>(Gender.Male, Gender.Female);
|
||||
}
|
||||
outExtraDescriptionRules.Add(new Rule_String("psychicArouseLevel", this.level.GetLabel()));
|
||||
outExtraDescriptionRules.Add(new Rule_String("psychicArouseGender", this.gender.GetLabel(false)));
|
||||
}
|
||||
|
||||
// Token: 0x0600543C RID: 21564 RVA: 0x001C4730 File Offset: 0x001C2930
|
||||
public override void ExposeData()
|
||||
{
|
||||
base.ExposeData();
|
||||
Scribe_Values.Look<Gender>(ref this.gender, "psychicArouseGender", Gender.None, false);
|
||||
Scribe_Values.Look<PsychicDroneLevel>(ref this.level, "psychicArouseLevel", PsychicDroneLevel.None, false);
|
||||
}
|
||||
|
||||
// Token: 0x04003496 RID: 13462
|
||||
public Gender gender;
|
||||
|
||||
// Token: 0x04003497 RID: 13463
|
||||
public PsychicDroneLevel level = PsychicDroneLevel.BadMedium;
|
||||
|
||||
// Token: 0x04003498 RID: 13464
|
||||
public const float MaxPointsDroneLow = 800f;
|
||||
|
||||
// Token: 0x04003499 RID: 13465
|
||||
public const float MaxPointsDroneMedium = 2000f;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue