public static void ToggleWindow(Pawn pawn, HediffComp_Menstruation comp) { Dialog_WombStatus window = (Dialog_WombStatus)Find.WindowStack.Windows.FirstOrDefault(x => x.GetType().Equals(typeof(Dialog_WombStatus))); if (window != null) { List <Pawn> pawns = Find.Selector.SelectedPawns.FindAll(x => x.ShouldShowWombGizmo()); if (Input.GetKey(VariousDefOf.OpenStatusWindowKey.MainKey) && !pawns.NullOrEmpty() && pawns.Count > 1) { int index = pawns.IndexOf(window.pawn); SoundDefOf.TabOpen.PlayOneShotOnCamera(); Pawn newpawn = pawns[(index + 1) % pawns.Count]; window.ChangePawn(newpawn, newpawn.GetMenstruationComp()); } else if (window.pawn != pawn) { SoundDefOf.TabOpen.PlayOneShotOnCamera(); window.ChangePawn(pawn, comp); } else { Find.WindowStack.TryRemove(typeof(Dialog_WombStatus), true); } } else { SoundDefOf.InfoCard_Open.PlayOneShotOnCamera(); Find.WindowStack.Add(new Dialog_WombStatus(pawn, comp)); } }
public static void ToggleWindow(Pawn pawn, HediffComp_Menstruation comp) { Dialog_WombStatus window = (Dialog_WombStatus)Find.WindowStack.Windows.FirstOrDefault(x => x.GetType().Equals(typeof(Dialog_WombStatus))); if (window != null) { if (window.pawn != pawn) { SoundDefOf.TabOpen.PlayOneShotOnCamera(); window.ChangePawn(pawn, comp); } else { Find.WindowStack.TryRemove(typeof(Dialog_WombStatus), true); } } else { SoundDefOf.InfoCard_Open.PlayOneShotOnCamera(); Find.WindowStack.Add(new Dialog_WombStatus(pawn, comp)); } }