Beispiel #1
0
        private static bool Prefix(SimGameOptionsMenu __instance, Action quitAction)
        {
            if (UnityGameInstance.BattleTechGame.IsMultiplayer)
            {
                return(true);
            }

            MessageCenter messageCenter = Traverse.Create(__instance).Field("messageCenter").GetValue <MessageCenter>();

            GenericPopupBuilder.
            Create("Are you sure you want to quit?", String.Empty).
            AddButton("Cancel", null, true, null).
            AddButton("Save & Quit", delegate
            {
                messageCenter.AddFiniteSubscriber(MessageCenterMessageType.BlockSaved, delegate(MessageCenterMessage message)
                {
                    quitAction();
                    return(true);
                });
                UnityGameInstance.BattleTechGame.Save(ModSettings.SIMGAME_AUTOSAVE_REASON, false);
            }, true, null).
            CancelOnEscape().IsNestedPopupWithBuiltInFader().Render();
            return(false);
        }