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"); }
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)); }