mirror of
https://gitgud.io/amevarashi/rjw-sexperience-ideology.git
synced 2024-08-15 00:43:19 +00:00
Fix IDE messages
This commit is contained in:
parent
032b031123
commit
670584500b
7 changed files with 262 additions and 288 deletions
|
@ -7,10 +7,10 @@ using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
internal class DebugAction
|
internal static class DebugAction
|
||||||
{
|
{
|
||||||
[DebugAction("RJW Sexperience Ideology", "Test marriage event", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)]
|
[DebugAction("RJW Sexperience Ideology", "Test marriage event", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.PlayingOnMap)]
|
||||||
private static void GenerateMarriageEvent(Pawn p)
|
public static void GenerateMarriageEvent(Pawn p)
|
||||||
{
|
{
|
||||||
Pawn hero = p.Map.PlayerPawnsForStoryteller.First(x => x.IsDesignatedHero());
|
Pawn hero = p.Map.PlayerPawnsForStoryteller.First(x => x.IsDesignatedHero());
|
||||||
if (hero == null)
|
if (hero == null)
|
||||||
|
|
|
@ -113,11 +113,13 @@ namespace RJWSexperience.Ideology.Patches
|
||||||
|
|
||||||
public static float PreceptSextype(Pawn pawn, Pawn partner, float score, List<HistoryEventDef> historyEventDefs)
|
public static float PreceptSextype(Pawn pawn, Pawn partner, float score, List<HistoryEventDef> historyEventDefs)
|
||||||
{
|
{
|
||||||
foreach(HistoryEventDef eventDef in historyEventDefs)
|
for (int i = 0; i < historyEventDefs.Count; i++)
|
||||||
{
|
{
|
||||||
|
HistoryEventDef eventDef = historyEventDefs[i];
|
||||||
|
|
||||||
if (eventDef.CreateEventWithPartner(pawn, partner).DoerWillingToDo())
|
if (eventDef.CreateEventWithPartner(pawn, partner).DoerWillingToDo())
|
||||||
{
|
{
|
||||||
float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, pawn.GetStatValue(xxx.sex_drive_stat)));
|
float mult = 8.0f * Math.Max(0.3f, 1 / Math.Max(0.01f, pawn.GetStatValue(xxx.sex_drive_stat, cacheStaleAfterTicks: 60)));
|
||||||
return score * mult;
|
return score * mult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
using System;
|
using RimWorld;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using rjw;
|
using rjw;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Verse;
|
using Verse;
|
||||||
using Verse.AI;
|
using Verse.AI;
|
||||||
using RimWorld;
|
|
||||||
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
|
@ -15,24 +11,22 @@ namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
protected override Job TryGiveJob(Pawn pawn)
|
protected override Job TryGiveJob(Pawn pawn)
|
||||||
{
|
{
|
||||||
if (pawn.Drafted) return null;
|
if (pawn.Drafted || pawn.mindState == null)
|
||||||
DutyDef dutyDef = null;
|
|
||||||
PawnDuty duty = null;
|
|
||||||
if (pawn.mindState != null)
|
|
||||||
{
|
{
|
||||||
duty = pawn.mindState.duty;
|
return null;
|
||||||
dutyDef = duty.def;
|
|
||||||
}
|
}
|
||||||
else return null;
|
|
||||||
|
|
||||||
if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn))
|
PawnDuty duty = pawn.mindState.duty;
|
||||||
|
|
||||||
|
if (duty.def == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Pawn target = FindPartner(pawn, duty);
|
Pawn target = FindPartner(pawn, duty);
|
||||||
|
|
||||||
if (target == null || !pawn.CanReserveAndReach(target, PathEndMode.ClosestTouch, Danger.None,1)) return JobMaker.MakeJob(RsiDefOf.Job.DrugMasturbate);
|
if (target == null || !pawn.CanReserveAndReach(target, PathEndMode.ClosestTouch, Danger.None, 1))
|
||||||
|
return JobMaker.MakeJob(RsiDefOf.Job.DrugMasturbate);
|
||||||
|
|
||||||
return JobMaker.MakeJob(RsiDefOf.Job.DrugSex, target);
|
return JobMaker.MakeJob(RsiDefOf.Job.DrugSex, target);
|
||||||
}
|
}
|
||||||
|
@ -42,14 +36,11 @@ namespace RJWSexperience.Ideology
|
||||||
if (duty != null)
|
if (duty != null)
|
||||||
{
|
{
|
||||||
List<Pawn> pawns = pawn.Map.mapPawns.AllPawnsSpawned.FindAll(x => x.mindState?.duty?.def == duty.def);
|
List<Pawn> pawns = pawn.Map.mapPawns.AllPawnsSpawned.FindAll(x => x.mindState?.duty?.def == duty.def);
|
||||||
return pawns.RandomElementByWeightWithDefault(x => SexAppraiser.would_fuck(pawn,x), 0.1f);
|
return pawns.RandomElementByWeightWithDefault(x => SexAppraiser.would_fuck(pawn, x), 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -73,41 +64,46 @@ namespace RJWSexperience.Ideology
|
||||||
this.FailOn(() => Partner == null);
|
this.FailOn(() => Partner == null);
|
||||||
yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell);
|
yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell);
|
||||||
|
|
||||||
Toil WaitForPartner = new Toil();
|
Toil WaitForPartner = new Toil
|
||||||
WaitForPartner.defaultCompleteMode = ToilCompleteMode.Delay;
|
{
|
||||||
WaitForPartner.initAction = delegate
|
defaultCompleteMode = ToilCompleteMode.Delay,
|
||||||
|
initAction = delegate
|
||||||
{
|
{
|
||||||
ticksLeftThisToil = 5000;
|
ticksLeftThisToil = 5000;
|
||||||
};
|
},
|
||||||
WaitForPartner.tickAction = delegate
|
tickAction = delegate
|
||||||
{
|
{
|
||||||
pawn.GainComfortFromCellIfPossible();
|
pawn.GainComfortFromCellIfPossible();
|
||||||
if (pawn.Position.DistanceTo(Partner.Position) <= 1f)
|
if (pawn.Position.DistanceTo(Partner.Position) <= 1f)
|
||||||
{
|
{
|
||||||
ReadyForNextToil();
|
ReadyForNextToil();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
yield return WaitForPartner;
|
yield return WaitForPartner;
|
||||||
|
|
||||||
Toil StartPartnerJob = new Toil();
|
Toil StartPartnerJob = new Toil
|
||||||
StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant;
|
|
||||||
StartPartnerJob.socialMode = RandomSocialMode.Off;
|
|
||||||
StartPartnerJob.initAction = delegate
|
|
||||||
{
|
{
|
||||||
var dri = Partner.jobs.curDriver as JobDriver_DrugSexReceiver;
|
defaultCompleteMode = ToilCompleteMode.Instant,
|
||||||
if (dri == null)
|
socialMode = RandomSocialMode.Off,
|
||||||
|
initAction = delegate
|
||||||
|
{
|
||||||
|
if (!(Partner.jobs.curDriver is JobDriver_DrugSexReceiver))
|
||||||
{
|
{
|
||||||
Job gettingQuickie = JobMaker.MakeJob(PartnerJob, pawn, Partner);
|
Job gettingQuickie = JobMaker.MakeJob(PartnerJob, pawn, Partner);
|
||||||
Partner.jobs.StartJob(gettingQuickie, JobCondition.InterruptForced);
|
Partner.jobs.StartJob(gettingQuickie, JobCondition.InterruptForced);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
yield return StartPartnerJob;
|
yield return StartPartnerJob;
|
||||||
|
|
||||||
Toil SexToil = new Toil();
|
Toil SexToil = new Toil
|
||||||
SexToil.defaultCompleteMode = ToilCompleteMode.Never;
|
{
|
||||||
SexToil.socialMode = RandomSocialMode.Off;
|
defaultCompleteMode = ToilCompleteMode.Never,
|
||||||
SexToil.defaultDuration = duration;
|
socialMode = RandomSocialMode.Off,
|
||||||
SexToil.handlingFacing = true;
|
defaultDuration = duration,
|
||||||
|
handlingFacing = true
|
||||||
|
};
|
||||||
SexToil.FailOn(() => Partner.CurJob.def != PartnerJob);
|
SexToil.FailOn(() => Partner.CurJob.def != PartnerJob);
|
||||||
SexToil.initAction = delegate
|
SexToil.initAction = delegate
|
||||||
{
|
{
|
||||||
|
@ -148,7 +144,6 @@ namespace RJWSexperience.Ideology
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class JobDriver_DrugSexReceiver : JobDriver_SexBaseRecieverLoved
|
public class JobDriver_DrugSexReceiver : JobDriver_SexBaseRecieverLoved
|
||||||
{
|
{
|
||||||
|
|
||||||
protected override IEnumerable<Toil> MakeNewToils()
|
protected override IEnumerable<Toil> MakeNewToils()
|
||||||
{
|
{
|
||||||
setup_ticks();
|
setup_ticks();
|
||||||
|
@ -175,16 +170,18 @@ namespace RJWSexperience.Ideology
|
||||||
|
|
||||||
protected Toil MakeSexToil()
|
protected Toil MakeSexToil()
|
||||||
{
|
{
|
||||||
Toil get_loved = new Toil();
|
Toil get_loved = new Toil
|
||||||
get_loved.defaultCompleteMode = ToilCompleteMode.Never;
|
|
||||||
get_loved.socialMode = RandomSocialMode.Off;
|
|
||||||
get_loved.handlingFacing = true;
|
|
||||||
get_loved.tickAction = delegate
|
|
||||||
{
|
{
|
||||||
|
defaultCompleteMode = ToilCompleteMode.Never,
|
||||||
|
socialMode = RandomSocialMode.Off,
|
||||||
|
handlingFacing = true,
|
||||||
|
tickAction = delegate
|
||||||
|
{
|
||||||
|
}
|
||||||
};
|
};
|
||||||
get_loved.AddEndCondition(new Func<JobCondition>(() =>
|
get_loved.AddEndCondition(new Func<JobCondition>(() =>
|
||||||
{
|
{
|
||||||
if (parteners.Count <= 0)
|
if (parteners.Count == 0)
|
||||||
{
|
{
|
||||||
return JobCondition.Succeeded;
|
return JobCondition.Succeeded;
|
||||||
}
|
}
|
||||||
|
@ -205,7 +202,6 @@ namespace RJWSexperience.Ideology
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class JobDriver_DrugMasturabate : JobDriver_Masturbate
|
public class JobDriver_DrugMasturabate : JobDriver_Masturbate
|
||||||
{
|
{
|
||||||
|
|
||||||
protected override IEnumerable<Toil> MakeNewToils()
|
protected override IEnumerable<Toil> MakeNewToils()
|
||||||
{
|
{
|
||||||
setup_ticks();
|
setup_ticks();
|
||||||
|
@ -252,6 +248,4 @@ namespace RJWSexperience.Ideology
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
using System;
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Verse;
|
using Verse;
|
||||||
using Verse.AI;
|
using Verse.AI;
|
||||||
using Verse.AI.Group;
|
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
|
@ -15,30 +11,27 @@ namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
protected override Job TryGiveJob(Pawn pawn)
|
protected override Job TryGiveJob(Pawn pawn)
|
||||||
{
|
{
|
||||||
if (pawn.Drafted) return null;
|
if (pawn.Drafted || pawn.mindState == null)
|
||||||
DutyDef dutyDef = null;
|
|
||||||
PawnDuty duty = null;
|
|
||||||
if (pawn.mindState != null)
|
|
||||||
{
|
{
|
||||||
duty = pawn.mindState.duty;
|
return null;
|
||||||
dutyDef = duty.def;
|
|
||||||
}
|
}
|
||||||
else return null;
|
|
||||||
|
|
||||||
if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn))
|
PawnDuty duty = pawn.mindState.duty;
|
||||||
|
|
||||||
|
if (duty.def == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Pawn target = duty.focusSecond.Pawn;
|
Pawn target = duty.focusSecond.Pawn;
|
||||||
|
|
||||||
if (!pawn.CanReach(target, PathEndMode.ClosestTouch, Danger.None)) return null;
|
if (!pawn.CanReach(target, PathEndMode.ClosestTouch, Danger.None))
|
||||||
|
return null;
|
||||||
|
|
||||||
return JobMaker.MakeJob(RsiDefOf.Job.Gangbang, target);
|
return JobMaker.MakeJob(RsiDefOf.Job.Gangbang, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class JobDriver_Gangbang : JobDriver_SexBaseInitiator
|
public class JobDriver_Gangbang : JobDriver_SexBaseInitiator
|
||||||
{
|
{
|
||||||
public override bool TryMakePreToilReservations(bool errorOnFailed)
|
public override bool TryMakePreToilReservations(bool errorOnFailed)
|
||||||
|
@ -56,25 +49,27 @@ namespace RJWSexperience.Ideology
|
||||||
this.FailOn(() => Partner.Drafted);
|
this.FailOn(() => Partner.Drafted);
|
||||||
yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell);
|
yield return Toils_Goto.GotoThing(iTarget, PathEndMode.OnCell);
|
||||||
|
|
||||||
Toil StartPartnerJob = new Toil();
|
Toil StartPartnerJob = new Toil
|
||||||
StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant;
|
|
||||||
StartPartnerJob.socialMode = RandomSocialMode.Off;
|
|
||||||
StartPartnerJob.initAction = delegate
|
|
||||||
{
|
{
|
||||||
|
defaultCompleteMode = ToilCompleteMode.Instant,
|
||||||
var dri = Partner.jobs.curDriver as JobDriver_SexBaseRecieverRaped;
|
socialMode = RandomSocialMode.Off,
|
||||||
if (dri == null)
|
initAction = delegate
|
||||||
|
{
|
||||||
|
if (!(Partner.jobs.curDriver is JobDriver_SexBaseRecieverRaped))
|
||||||
{
|
{
|
||||||
Job gettin_loved = JobMaker.MakeJob(RsiDefOf.Job.GettinGangbang, pawn, Bed);
|
Job gettin_loved = JobMaker.MakeJob(RsiDefOf.Job.GettinGangbang, pawn, Bed);
|
||||||
Partner.jobs.StartJob(gettin_loved, JobCondition.InterruptForced);
|
Partner.jobs.StartJob(gettin_loved, JobCondition.InterruptForced);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
yield return StartPartnerJob;
|
yield return StartPartnerJob;
|
||||||
|
|
||||||
Toil SexToil = new Toil();
|
Toil SexToil = new Toil
|
||||||
SexToil.defaultCompleteMode = ToilCompleteMode.Never;
|
{
|
||||||
SexToil.defaultDuration = duration;
|
defaultCompleteMode = ToilCompleteMode.Never,
|
||||||
SexToil.handlingFacing = true;
|
defaultDuration = duration,
|
||||||
|
handlingFacing = true
|
||||||
|
};
|
||||||
SexToil.FailOn(() => Partner.CurJob.def != RsiDefOf.Job.GettinGangbang);
|
SexToil.FailOn(() => Partner.CurJob.def != RsiDefOf.Job.GettinGangbang);
|
||||||
SexToil.initAction = delegate
|
SexToil.initAction = delegate
|
||||||
{
|
{
|
||||||
|
@ -114,22 +109,24 @@ namespace RJWSexperience.Ideology
|
||||||
setup_ticks();
|
setup_ticks();
|
||||||
parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job
|
parteners.Add(Partner);// add job starter, so this wont fail, before Initiator starts his job
|
||||||
|
|
||||||
Toil get_banged = new Toil();
|
Toil get_banged = new Toil
|
||||||
get_banged.defaultCompleteMode = ToilCompleteMode.Never;
|
{
|
||||||
get_banged.handlingFacing = true;
|
defaultCompleteMode = ToilCompleteMode.Never,
|
||||||
get_banged.initAction = delegate
|
handlingFacing = true,
|
||||||
|
initAction = delegate
|
||||||
{
|
{
|
||||||
pawn.pather.StopDead();
|
pawn.pather.StopDead();
|
||||||
pawn.jobs.curDriver.asleep = false;
|
pawn.jobs.curDriver.asleep = false;
|
||||||
};
|
},
|
||||||
get_banged.tickAction = delegate
|
tickAction = delegate
|
||||||
{
|
{
|
||||||
if ((parteners.Count > 0) && pawn.IsHashIntervalTick(ticks_between_hearts / parteners.Count) && pawn.IsHashIntervalTick(ticks_between_hearts))
|
if ((parteners.Count > 0) && pawn.IsHashIntervalTick(ticks_between_hearts / parteners.Count) && pawn.IsHashIntervalTick(ticks_between_hearts))
|
||||||
ThrowMetaIconF(pawn.Position, pawn.Map, FleckDefOf.Heart);
|
ThrowMetaIconF(pawn.Position, pawn.Map, FleckDefOf.Heart);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
get_banged.AddEndCondition(new Func<JobCondition>(() =>
|
get_banged.AddEndCondition(new Func<JobCondition>(() =>
|
||||||
{
|
{
|
||||||
if (parteners.Count <= 0)
|
if (parteners.Count == 0)
|
||||||
{
|
{
|
||||||
return JobCondition.Succeeded;
|
return JobCondition.Succeeded;
|
||||||
}
|
}
|
||||||
|
@ -148,12 +145,12 @@ namespace RJWSexperience.Ideology
|
||||||
Partner.jobs.jobQueue.EnqueueFirst(tobed);
|
Partner.jobs.jobQueue.EnqueueFirst(tobed);
|
||||||
}
|
}
|
||||||
else if (pawn.HostileTo(Partner))
|
else if (pawn.HostileTo(Partner))
|
||||||
|
{
|
||||||
pawn.health.AddHediff(xxx.submitting);
|
pawn.health.AddHediff(xxx.submitting);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
get_banged.socialMode = RandomSocialMode.Off;
|
get_banged.socialMode = RandomSocialMode.Off;
|
||||||
yield return get_banged;
|
yield return get_banged;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,8 @@
|
||||||
using System;
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Verse;
|
using Verse;
|
||||||
using Verse.AI;
|
using Verse.AI;
|
||||||
using Verse.AI.Group;
|
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
|
@ -16,17 +10,14 @@ namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
protected override Job TryGiveJob(Pawn pawn)
|
protected override Job TryGiveJob(Pawn pawn)
|
||||||
{
|
{
|
||||||
if (pawn.Drafted) return null;
|
if (pawn.Drafted || pawn.mindState == null)
|
||||||
DutyDef dutyDef = null;
|
|
||||||
PawnDuty duty = null;
|
|
||||||
if (pawn.mindState != null)
|
|
||||||
{
|
{
|
||||||
duty = pawn.mindState.duty;
|
return null;
|
||||||
dutyDef = duty.def;
|
|
||||||
}
|
}
|
||||||
else return null;
|
|
||||||
|
|
||||||
if (dutyDef == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn))
|
PawnDuty duty = pawn.mindState.duty;
|
||||||
|
|
||||||
|
if (duty.def == DutyDefOf.TravelOrLeave || !xxx.can_do_loving(pawn))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -39,7 +30,6 @@ namespace RJWSexperience.Ideology
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// copied from rjw
|
/// copied from rjw
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -64,25 +54,28 @@ namespace RJWSexperience.Ideology
|
||||||
|
|
||||||
SexUtility.RapeTargetAlert(pawn, Partner);
|
SexUtility.RapeTargetAlert(pawn, Partner);
|
||||||
|
|
||||||
Toil StartPartnerJob = new Toil();
|
Toil StartPartnerJob = new Toil
|
||||||
StartPartnerJob.defaultCompleteMode = ToilCompleteMode.Instant;
|
|
||||||
StartPartnerJob.socialMode = RandomSocialMode.Off;
|
|
||||||
StartPartnerJob.initAction = delegate
|
|
||||||
{
|
{
|
||||||
var dri = Partner.jobs.curDriver as JobDriver_SexBaseRecieverRaped;
|
defaultCompleteMode = ToilCompleteMode.Instant,
|
||||||
if (dri == null)
|
socialMode = RandomSocialMode.Off,
|
||||||
|
initAction = delegate
|
||||||
|
{
|
||||||
|
if (!(Partner.jobs.curDriver is JobDriver_SexBaseRecieverRaped))
|
||||||
{
|
{
|
||||||
Job gettin_raped = JobMaker.MakeJob(PartnerJob, pawn);
|
Job gettin_raped = JobMaker.MakeJob(PartnerJob, pawn);
|
||||||
|
|
||||||
Partner.jobs.StartJob(gettin_raped, JobCondition.InterruptForced, null, false, true, null);
|
Partner.jobs.StartJob(gettin_raped, JobCondition.InterruptForced, null, false, true, null);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
yield return StartPartnerJob;
|
yield return StartPartnerJob;
|
||||||
|
|
||||||
Toil SexToil = new Toil();
|
Toil SexToil = new Toil
|
||||||
SexToil.defaultCompleteMode = ToilCompleteMode.Never;
|
{
|
||||||
SexToil.defaultDuration = duration;
|
defaultCompleteMode = ToilCompleteMode.Never,
|
||||||
SexToil.handlingFacing = true;
|
defaultDuration = duration,
|
||||||
|
handlingFacing = true
|
||||||
|
};
|
||||||
SexToil.FailOn(() => Partner.CurJob.def != PartnerJob);
|
SexToil.FailOn(() => Partner.CurJob.def != PartnerJob);
|
||||||
SexToil.initAction = delegate
|
SexToil.initAction = delegate
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
using System;
|
using RimWorld;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Verse;
|
using Verse;
|
||||||
using Verse.AI;
|
|
||||||
using RimWorld;
|
|
||||||
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
|
@ -14,7 +8,7 @@ namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
public LordJob_Ritual_Gangbang() { }
|
public LordJob_Ritual_Gangbang() { }
|
||||||
|
|
||||||
public LordJob_Ritual_Gangbang(string targetID ,TargetInfo selectedTarget, Precept_Ritual ritual, RitualObligation obligation, List<RitualStage> allStages, RitualRoleAssignments assignments, Pawn organizer = null) : base(selectedTarget, ritual, obligation, allStages, assignments, organizer)
|
public LordJob_Ritual_Gangbang(string targetID, TargetInfo selectedTarget, Precept_Ritual ritual, RitualObligation obligation, List<RitualStage> allStages, RitualRoleAssignments assignments, Pawn organizer = null) : base(selectedTarget, ritual, obligation, allStages, assignments, organizer)
|
||||||
{
|
{
|
||||||
foreach (RitualRole ritualRole in assignments.AllRolesForReading)
|
foreach (RitualRole ritualRole in assignments.AllRolesForReading)
|
||||||
{
|
{
|
||||||
|
@ -25,6 +19,5 @@ namespace RJWSexperience.Ideology
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
using Verse;
|
|
||||||
using rjw;
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
|
@ -42,7 +42,6 @@ namespace RJWSexperience.Ideology
|
||||||
|
|
||||||
public override bool AppliesToPawn(Pawn p, out string reason, TargetInfo selectedTarget, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false)
|
public override bool AppliesToPawn(Pawn p, out string reason, TargetInfo selectedTarget, LordJob_Ritual ritual = null, RitualRoleAssignments assignments = null, Precept_Ritual precept = null, bool skipReason = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
reason = null;
|
reason = null;
|
||||||
if (!xxx.is_human(p))
|
if (!xxx.is_human(p))
|
||||||
{
|
{
|
||||||
|
@ -57,11 +56,7 @@ namespace RJWSexperience.Ideology
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool CanBeBreedee(Pawn pawn)
|
public static bool CanBeBreedee(Pawn pawn) => xxx.can_be_fucked(pawn);
|
||||||
{
|
|
||||||
if (xxx.can_be_fucked(pawn)) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RitualRole_AnimalBreeder : RitualRole
|
public class RitualRole_AnimalBreeder : RitualRole
|
||||||
|
@ -96,11 +91,11 @@ namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!xxx.can_rape(animal)) return false;
|
if (!xxx.can_rape(animal))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue