// protected IEnumerator refreshScene(Player player){
    //     // player.playerRuntimeData.lastLittleSunID = littleSunData.LittleSunID;
    //     // EnemySaveData.ResetRevivableEnemy();
    //     // player.stateMachine.SwitchState(player.cinemaState);
    //     // GameManager gameManager = GameObject.Find("GameManager").GetComponent<GameManager>();
    //     // yield return new WaitForSeconds(gameManager.uiHandler.uiEffectHandler.OnPlayUIEffect(UIEffect.Transition_CrossFadeWhite, UIEffectAnimationClip.start));

    //     // gameManager.LoadSceneCode(player.playerRuntimeData.currentSceneCode);

    //     // yield return new WaitForSeconds(gameManager.uiHandler.uiEffectHandler.OnPlayUIEffect(UIEffect.Transition_CrossFadeWhite, UIEffectAnimationClip.end));
    //     // player.stateMachine.SwitchState(player.littleSunState);
    //     // yield return null;
    // }

    public void OnLittleSunTravel()
    {
        LittleSunData data   = littleSunMenu.GetCurrentSelectedLittleSun();
        Player        player = GameObject.Find("Player").GetComponent <Player>();

        player.playerRuntimeData.lastLittleSunID = data.LittleSunID;
        player.SetLittleSunHandler(null);
        littleSunMenu.Deactivate();
        GameObject.Find("GameManager").GetComponent <GameManager>().ReloadScene();
        EnemySaveData.ResetRevivableEnemy();
        isTeleported = true;
    }
Exemplo n.º 2
0
 public void ReloadScene()
 {
     // player not finding any little suns
     if (player.playerRuntimeData.lastLittleSunID < 0)
     {
         StartCoroutine(ReloadScene(DefaultStartScene, DefaultStartPoint.position));
     }
     else
     {
         LittleSunData data = LittleSuns[player.playerRuntimeData.lastLittleSunID];
         StartCoroutine(ReloadScene(data.sceneCode, data.TeleportPoint.position));
     }
 }
Exemplo n.º 3
0
    IEnumerator StartGame(bool isNewGame)
    {
        yield return(new WaitForSeconds(uiHandler.uiEffectHandler.OnPlayUIEffect(UIEffect.Transition_CrossFade, UIEffectAnimationClip.start)));

        ResetAllSceneCode();

        // uiHandler.uiEffectHandler.OnPlayUIEffect(UIEffect.Transition_CrossFade, UIEffectAnimationClip.dark);
        if (isNewGame)
        {
            player.gameObject.SetActive(true);
            currentSceneCode = DefaultStartScene;
            player.InitSaveData();
            EnemySaveData.Initialize();
            Loot.Initialize();
            LittleSunData.Initialize();

            if (DefaultStartPoint)
            {
                player.SetPosition(DefaultStartPoint.position);
                player.playerRuntimeData.lastPosition = DefaultStartPoint.position;
            }
        }
        else
        {
            player.gameObject.SetActive(true);
            yield return(new WaitForEndOfFrame());

            gameSaver.LoadAll();
            yield return(new WaitUntil(() => gameSaver.IsLoaded()));

            yield return(new WaitForEndOfFrame());

            // yield return new WaitForSeconds(5f);
            currentSceneCode = player.playerRuntimeData.currentSceneCode;
            elapsedSeconds   = gameSaver.GetSaveSlotMeta(gameSaver.currentSaveSlot).elapsedSeconds;
        }
        uiHandler.StartGame();

        player.InputHandler.ResetAll();

        player.InitializeRuntimeData();

        LoadSceneCode();

        player.stateMachine.InitializeState(player.wakeupState);

        Camera.main.GetComponent <BasicFollower>().ClampCamera(player.transform.position);
        Camera.main.GetComponent <BasicFollower>().UpdateCameraFollowing(player.transform);
        yield return(new WaitForSeconds(uiHandler.uiEffectHandler.OnPlayUIEffect(UIEffect.Transition_CrossFade, UIEffectAnimationClip.end)));
    }
Exemplo n.º 4
0
 void Awake()
 {
     littleSunData = GetComponent <LittleSunData>();
 }
Exemplo n.º 5
0
    public void Load(SaveSlot saveSlot)
    {
        FileStream fs   = null;
        string     path = saveDirectory + "/" + saveSlot.ToString() + ".tgb";

        if (File.Exists(path))
        {
            try
            {
                isLoaded = false;
                fs       = new FileStream(path, FileMode.Open);
                BinaryFormatter bf = new BinaryFormatter();

                var littleSuns = (Dictionary <int, bool>)bf.Deserialize(fs);
                LittleSunData.SetLittleSunData(littleSuns);
                var    playerSaveData = (D_PlayerStateMachine.PlayerSaveData)bf.Deserialize(fs);
                var    ability        = (D_PlayerAbility.PlayerAbility)bf.Deserialize(fs);
                Player player         = GameObject.Find("Player").GetComponent <Player>();
                player.playerData.SetPlayerSaveData(playerSaveData);
                player.playerAbilityData.SetPlayerAbility(ability);
                var runtimeData = (PlayerRuntimeData.PlayerRuntimeSaveData)bf.Deserialize(fs);
                player.playerRuntimeData.SetPlayerRuntimeSaveData(runtimeData);
                var miscSaveData = (MiscData.MiscSaveData)bf.Deserialize(fs);
                player.miscData.SetMiscSaveData(miscSaveData);
                var enemyRuntimeSaveData = (EnemySaveData.EnemyRuntimeSaveData)bf.Deserialize(fs);
                EnemySaveData.SetEnemyRuntimeSaveData(enemyRuntimeSaveData);
                var lootRuntimeSaveData = (Loot.LootRuntimeSaveData)bf.Deserialize(fs);
                Loot.SetLootRuntimeSaveData(lootRuntimeSaveData);
            }
            catch (FileNotFoundException ex)
            {
                Debug.Log("On GameSaver::Load, " + ex.StackTrace);
            }
            finally
            {
                fs?.Close();
                isLoaded = true;
            }
        }

        // string path = saveDirectory + "/" + saveSlot.ToString() + ".json";
        // if(File.Exists(path)){
        //     try{
        //         isLoaded = false;
        //         StreamReader streamReader = File.OpenText(path);
        //         GameJsonSaveData gameJsonSaveData = JsonUtility.FromJson<GameJsonSaveData>(streamReader.ReadToEnd());

        //         LittleSunData.SetLittleSunData(gameJsonSaveData.littleSunData);
        //         Player player = GameObject.Find("Player").GetComponent<Player>();
        //         player.playerData.SetPlayerSaveData(gameJsonSaveData.playerSaveData);
        //         player.playerAbilityData.SetPlayerAbility(gameJsonSaveData.playerAbility);
        //         player.playerRuntimeData.SetPlayerRuntimeSaveData(gameJsonSaveData.playerRuntimeSaveData);
        //         player.miscData.SetMiscSaveData(gameJsonSaveData.miscSaveData);
        //         EnemySaveData.SetEnemyRuntimeSaveData(gameJsonSaveData.enemyRuntimeSaveData);
        //         Loot.SetLootRuntimeSaveData(gameJsonSaveData.lootRuntimeSaveData);

        //         streamReader.Close();
        //     }
        //     catch(Exception ex){
        //         Debug.Log(ex.StackTrace);
        //     }
        //     finally{
        //         isLoaded = true;
        //     }
        // }
    }