protected override IEnumerable <Toil> MakeNewToils() { this.FailOnDespawnedOrNull(TargetIndex.A); this.FailOn(() => this.$this.OtherFiance.Drafted || !this.$this.pawn.Position.AdjacentTo8WayOrInside(this.$this.OtherFiance)); Toil marry = new Toil(); marry.initAction = delegate { this.$this.ticksLeftToMarry = 2500; }; marry.tickAction = delegate { this.$this.ticksLeftToMarry--; if (this.$this.ticksLeftToMarry <= 0) { this.$this.ticksLeftToMarry = 0; this.$this.ReadyForNextToil(); } }; marry.defaultCompleteMode = ToilCompleteMode.Never; marry.FailOn(() => !this.$this.pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, this.$this.OtherFiance)); yield return(marry); yield return(new Toil { defaultCompleteMode = ToilCompleteMode.Instant, initAction = delegate { if (this.$this.pawn.thingIDNumber < this.$this.OtherFiance.thingIDNumber) { MarriageCeremonyUtility.Married(this.$this.pawn, this.$this.OtherFiance); } } }); }
protected override IEnumerable <Toil> MakeNewToils() { this.FailOnDespawnedOrNull(TargetIndex.A); this.FailOn(() => OtherFiance.Drafted || !pawn.Position.AdjacentTo8WayOrInside(OtherFiance)); Toil toil = new Toil(); toil.initAction = delegate { ticksLeftToMarry = 2500; }; toil.tickAction = delegate { ticksLeftToMarry--; if (ticksLeftToMarry <= 0) { ticksLeftToMarry = 0; ReadyForNextToil(); } }; toil.defaultCompleteMode = ToilCompleteMode.Never; toil.FailOn(() => !pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, OtherFiance)); yield return(toil); Toil toil2 = new Toil(); toil2.defaultCompleteMode = ToilCompleteMode.Instant; toil2.initAction = delegate { if (pawn.thingIDNumber < OtherFiance.thingIDNumber) { MarriageCeremonyUtility.Married(pawn, OtherFiance); } }; yield return(toil2); }
public bool MoveNext() { uint num = (uint)this.$PC; this.$PC = -1; switch (num) { case 0u: this.FailOnDespawnedOrNull(TargetIndex.A); this.FailOn(() => base.OtherFiance.Drafted || !this.pawn.Position.AdjacentTo8WayOrInside(base.OtherFiance)); marry = new Toil(); marry.initAction = delegate() { this.ticksLeftToMarry = 2500; }; marry.tickAction = delegate() { this.ticksLeftToMarry--; if (this.ticksLeftToMarry <= 0) { this.ticksLeftToMarry = 0; base.ReadyForNextToil(); } }; marry.defaultCompleteMode = ToilCompleteMode.Never; marry.FailOn(() => !this.pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, base.OtherFiance)); this.$current = marry; if (!this.$disposing) { this.$PC = 1; } return(true); case 1u: { Toil finalize = new Toil(); finalize.defaultCompleteMode = ToilCompleteMode.Instant; finalize.initAction = delegate() { if (this.pawn.thingIDNumber < base.OtherFiance.thingIDNumber) { MarriageCeremonyUtility.Married(this.pawn, base.OtherFiance); } }; this.$current = finalize; if (!this.$disposing) { this.$PC = 2; } return(true); } case 2u: this.$PC = -1; break; } return(false); }