private void TryTimedWorship()
        {
            if (tempCurrentWorshipDeity == null)
            {
                Messages.Message("Cults_NoWorshipWithoutDeity".Translate(), MessageTypeDefOf.RejectInput);
                //CancelWorship();
                return;
            }

            if (tempPreacher == null)
            {
                tempPreacher = CultUtility.DetermineBestPreacher(Map);
            }

            if (Utility.IsMorning(Map))
            {
                didMorningRitual = true;
            }

            if (Utility.IsEvening(Map))
            {
                didEveningRitual = true;
            }

            TryWorship();
        }
Example #2
0
        public static void OpenPreacherSelectMenu(Building_SacrificialAltar altar)
        {
            var list = new List <FloatMenuOption>
            {
                new FloatMenuOption("(" + "Auto".Translate() + ")",
                                    delegate { altar.tempPreacher = CultUtility.DetermineBestPreacher(altar.Map); })
            };

            foreach (var current in CultTracker.Get.PlayerCult.MembersAt(altar.Map))
            {
                if (!current.health.capacities.CapableOf(PawnCapacityDefOf.Talking) ||
                    !current.health.capacities.CapableOf(PawnCapacityDefOf.Moving))
                {
                    continue;
                }

                var localCol = current;

                void Action()
                {
                    //Map.GetComponent<MapComponent_SacrificeTracker>().lastUsedAltar = altar;
                    altar.tempPreacher = localCol;
                }

                list.Add(new FloatMenuOption(localCol.LabelShort, Action));
            }

            Find.WindowStack.Add(new FloatMenu(list));
        }
Example #3
0
        public static void OpenPreacherSelectMenu(Building_SacrificialAltar altar)
        {
            List <FloatMenuOption> list = new List <FloatMenuOption>();

            list.Add(new FloatMenuOption("(" + "Auto".Translate() + ")", delegate
            {
                altar.tempPreacher = CultUtility.DetermineBestPreacher(altar.Map);
            }, MenuOptionPriority.Default, null, null, 0f, null));

            foreach (Pawn current in CultTracker.Get.PlayerCult.MembersAt(altar.Map))
            {
                if (current.health.capacities.CapableOf(PawnCapacityDefOf.Talking) &&
                    current.health.capacities.CapableOf(PawnCapacityDefOf.Moving))
                {
                    Action action;
                    Pawn   localCol = current;
                    action = delegate
                    {
                        //Map.GetComponent<MapComponent_SacrificeTracker>().lastUsedAltar = altar;
                        altar.tempPreacher = localCol;
                    };
                    list.Add(new FloatMenuOption(localCol.LabelShort, action, MenuOptionPriority.Default, null, null, 0f, null));
                }
            }
            Find.WindowStack.Add(new FloatMenu(list));
        }
Example #4
0
        private static string PreacherLabel(Building_SacrificialAltar altar)
        {
            if (altar.tempPreacher != null)
            {
                return(altar.tempPreacher.Name.ToStringShort);
            }

            altar.tempPreacher = CultUtility.DetermineBestPreacher(altar.Map);
            return(altar.tempPreacher == null ? "None" : altar.tempPreacher.Name.ToStringShort);
        }