private void MakeReadyAndStartGame()
        {
            if (!TryLoadNewestWorld())
            // for one reason or another, loading saved world failed, so we'll create a new one.
            {
                WorldGenerationData.Reset();
                WorldGenerator.GenerateWorld();
                GameDataSaver.SaveWorld(Current.World);
                Log.Message("QuickStart :: World created");
            }
            else
            {
                Log.Message("QuickStart :: World loaded");
            }

            Rand.RandomizeSeedFromTime();
            MapInitData.difficulty = DefDatabase <DifficultyDef> .GetRandom();

            MapInitData.chosenStoryteller = DefDatabase <StorytellerDef> .GetRandom();

            MapInitData.ChooseDecentLandingSite();
            MapInitData.GenerateDefaultColonistsWithFaction();

            // set faction into world.
            MethodInfo SCFIW_MI = typeof(MapInitData).GetMethod("SetColonyFactionIntoWorld",
                                                                BindingFlags.Static | BindingFlags.NonPublic);

            SCFIW_MI.Invoke(null, null);
            MapInitData.mapSize = 150;

            // set started from entry to true to make sure InitNewGeneratedMap() doesn't override our settings,
            // and we get the fancy guitar riff intro.
            MapInitData.startedFromEntry = true;
            Application.LoadLevel("Gameplay");
        }
Exemple #2
0
    private void Start()
    {
        // load local resources
        // (moving all logic from start function to this first time function)
        gameDataSaver = GetComponent <GameDataSaver>();
        logoutButton.onClick.AddListener(onLogout);
        exitButton.onClick.AddListener(onExit);
        logoutCanvas     = FindObjectOfType <LogoutCanvas>();
        questWindowUI    = FindObjectOfType <QuestWindowUI>();
        reviveController = FindObjectOfType <ReviveController>();
        hud              = FindObjectOfType <HUDController>();
        dialogueUI       = FindObjectOfType <DialogueUI>();
        actionBar        = GetComponentInChildren <ActionBarController>();
        inventoryManager = gameObject.GetComponentInChildren <InventoryManager>(true);
        inventory        = inventoryManager.inventory;
        equipment        = gameObject.GetComponentInChildren <EquipmentPanel>(true).equipment;

        // set up component
        logoutCanvas.gameObject.SetActive(false);
        hud.gameObject.SetActive(false);
        QuestManager.instance.questWindowUI = questWindowUI;
        DialogueManager.instance.dialogueUI = dialogueUI;
        StartCoroutine(LoadGameScene());
        exitButton.enabled = false;
        logoutButton.gameObject.SetActive(false);
        exitButton.gameObject.SetActive(false);

        // If game data exists in the database
        // Override the first stats load using the user data
        if (User.GetActiveCharacter().GameState.isDirty)
        {
            GameCharacter.Stats = GameCharacter.GetStatsFromData(UserService.Instance.User.GetActiveCharacter().GameState.Stats);
            GameCharacter.Stats.Setup();
        }
    }
Exemple #3
0
 public override void ClickAction()
 {
     LongEventHandler.QueueLongEvent(
         () =>
     {
         GameDataSaver.SaveGame(Find.Map, Find.Map.info.permadeathModeUniqueName);
         LongEventHandler.ExecuteWhenFinished(Root.Shutdown);
     },
         "SavingLongEvent",
         false,
         null
         );
 }
Exemple #4
0
 public override void ClickAction()
 {
     LongEventHandler.QueueLongEvent(
         () =>
     {
         GameDataSaver.SaveGame(Find.Map, Find.Map.info.permadeathModeUniqueName);
     },
         "Entry",
         "SavingLongEvent",
         false,
         null
         );
 }
    public void Save()
    {
        GameDataSaver gds     = FindObjectOfType <GameDataSaver>();
        bool          success = false;

        if (gds != null && rotators.Count >= 1)
        {
            Debug.Log(rotators.Count + "    " + speeds.Count + "    " + startAngles.Length);
            success = gds.AddLevel(speeds.ToArray(), startAngles);
        }

        SaveDialog.gameObject.SetActive(true);
        if (success)
        {
            SaveResultTxt.text = "level saved";
        }
        else
        {
            SaveResultTxt.text = "failed to save";
        }
    }
    private void loadLevel(LevelData level, LevelButton btn)
    {
        Image  image    = btn.GetComponentInChildren <Image>();
        Sprite levelSpr = null;

        if (image != null)
        {
            Texture2D texture = null;

            if (level is LevelDataLoaded)
            {
                texture = GameDataSaver.LoadTexture((level as LevelDataLoaded).TexturePath);
            }
            else if (level is LevelDataDefault)
            {
                texture = (level as LevelDataDefault).Texture;
            }


            if (texture != null)
            {
                levelSpr = Sprite.Create(texture,
                                         new Rect(0, 0, 512, 512),
                                         Vector2.zero, 100);
            }
            image.sprite = levelSpr;
        }

        btn.onClick.AddListener(() =>
        {
            if (LevelButton.LastBtnClicked != btn)
            {
                LevelButton.LastBtnClicked = btn;
                LevelButton.ClickCount     = 0;
            }


            LevelButton.ClickCount++;


            if (LevelButton.ClickCount == 1)
            {
                showStats(level);
            }
            else if (LevelButton.ClickCount == 2)
            {
                LevelButton.LastBtnClicked = null;
                LevelButton.ClickCount     = 0;
                FindObjectOfType <GameDataSaver>().LoadLevel(level);
            }
        });
        if (level is LevelDataLoaded)
        {
            btn.onPressing.AddListener(() =>
            {
                DeletelevelDialogPanel.position  = btn.transform.position;
                DeletelevelDialogPanel.sizeDelta = btn.GetComponent <RectTransform>().sizeDelta;
                DeletelevelDialogPanel.gameObject.SetActive(true);

                DeleteBtn.onClick.RemoveAllListeners();
                DeleteBtn.onClick.AddListener(() =>
                {
                    FindObjectOfType <GameDataSaver>().DeleteLevel(level);
                    DeletelevelDialogPanel.gameObject.SetActive(false);
                    Destroy(btn.gameObject);
                    loadLevel(GameDataSaver.LastLevel, LastLevelImg);
                });
            });
        }
    }