Ejemplo n.º 1
0
        public static string DeityLabel(Building_SacrificialAltar altar, DeityType deityType)
        {
            switch (deityType)
            {
            case DeityType.OfferingDeity:
                if (altar.tempCurrentOfferingDeity == null)
                {
                    return("None");
                }

                return(altar.tempCurrentOfferingDeity.LabelCap);

            case DeityType.WorshipDeity:
                if (altar.tempCurrentWorshipDeity == null)
                {
                    return("None");
                }

                return(altar.tempCurrentWorshipDeity.LabelCap);

            case DeityType.SacrificeDeity:
                if (altar.tempCurrentSacrificeDeity == null)
                {
                    return("None");
                }

                return(altar.tempCurrentSacrificeDeity.LabelCap);
            }

            return("None");
        }
Ejemplo n.º 2
0
        public static void OpenDeitySelectMenu(Building_SacrificialAltar altar, DeityType deityType)
        {
            var list = new List <FloatMenuOption>
            {
                new FloatMenuOption("(" + "NoneLower".Translate() + ")", delegate
                {
                    altar.Map.GetComponent <MapComponent_SacrificeTracker>().lastUsedAltar = altar;
                    altar.tempCurrentSacrificeDeity = null;
                })
            };

            foreach (var current in DeityTracker.Get.DeityCache.Keys)
            {
                if (current.discovered == false)
                {
                    continue;
                }

                Action action;
                var    localDeity = current;
                action = delegate
                {
                    MapComponent_SacrificeTracker.Get(altar.Map).lastUsedAltar = altar;
                    switch (deityType)
                    {
                    case DeityType.WorshipDeity:
                        altar.tempCurrentWorshipDeity = localDeity;
                        break;

                    case DeityType.OfferingDeity:
                        altar.tempCurrentOfferingDeity = localDeity;
                        break;

                    case DeityType.SacrificeDeity:
                        altar.tempCurrentSacrificeDeity = localDeity;
                        altar.tempCurrentSpell          = null;
                        break;
                    }
                };

                bool extraPartOnGUI(Rect rect)
                {
                    return(DeityInfoCardButton(rect.x + 5f, rect.y + ((rect.height - 24f) / 2f), current));
                }

                list.Add(new FloatMenuOption(localDeity.LabelCap, action, MenuOptionPriority.Default, null, null, 29f,
                                             extraPartOnGUI));
            }

            Find.WindowStack.Add(new FloatMenu(list));
        }