Ejemplo n.º 1
0
        public static void UnloadMap(Map map, string fileName, bool forced = false)
        {
            utilityStatus = PersistenceUtilityStatus.Saving;
            if (!IsLastColony() || forced)
            {
                if (SaveMap(map, fileName))
                {
                    // Changing state to not get the banished debuff as you literally don't banish your people
                    Current.ProgramState = ProgramState.Entry;
                    Current.Game.DeinitAndRemoveMap(map);
                    Current.ProgramState = ProgramState.Playing;

                    Messages.Message("FM.mapUnloaded".Translate(), MessageTypeDefOf.NeutralEvent);
                }
                else
                {
                    Messages.Message("FM.mapUnloadFailed".Translate(), MessageTypeDefOf.RejectInput);
                }
            }
            else
            {
                Messages.Message("FM.errorMapUnloadLast".Translate(), MessageTypeDefOf.RejectInput);
            }

            utilityStatus = PersistenceUtilityStatus.Idle;
        }
Ejemplo n.º 2
0
        public static void LoadMap(string fileName, bool forced = false)
        {
            utilityStatus = PersistenceUtilityStatus.Loading;
            if (!MaxColoniesReached() || forced)
            {
                LongEventHandler.SetCurrentEventText("FM.prepareGame".Translate());
                SaveCurrentGame();
                LongEventHandler.SetCurrentEventText("FM.prepareLoad".Translate());
                PrepareSaveGame(fileName);
                LoadGameFromTmpSave(fileName);

                Messages.Message("FM.mapLoaded".Translate(), MessageTypeDefOf.NeutralEvent);
            }
            else
            {
                Messages.Message("CommandSettleFailReachedMaximumNumberOfBases".Translate(), MessageTypeDefOf.NeutralEvent);
            }

            utilityStatus = PersistenceUtilityStatus.Idle;
        }