public void StartToWorship(bool forced = false)
        {
            preacher            = tempPreacher;
            currentWorshipDeity = tempCurrentWorshipDeity;

            if (this.Destroyed || !this.Spawned)
            {
                CultUtility.AbortCongregation(null, "The altar is unavailable.");
                return;
            }
            if (!Cthulhu.Utility.IsActorAvailable(this.preacher))
            {
                CultUtility.AbortCongregation(this, "The preacher, " + this.preacher.LabelShort + ", is unavaialable.");
                this.preacher = null;
                return;
            }

            Settlement factionBase = (Settlement)this.Map.info.parent;

            Messages.Message("WorshipGathering".Translate(new object[] {
                factionBase.Label
            }), TargetInfo.Invalid, MessageTypeDefOf.NeutralEvent);
            ChangeState(State.worshipping, WorshipState.started);
            //this.currentState = State.started;
            //Map.GetComponent<MapComponent_SacrificeTracker>().lastResult = CultUtility.SacrificeResult.none;

            Cthulhu.Utility.DebugReport("Force worship called");
            Job job = new Job(CultsDefOf.Cults_HoldWorship, this);

            job.playerForced = forced;
            preacher.jobs.TryTakeOrderedJob(job);
            //preacher.jobs.EndCurrentJob(JobCondition.InterruptForced);
            //GetWorshipGroup(this, Map, forced);
        }