Exemple #1
0
 void SavePlayerDataInCurrentRun(PlayableCharacterScript player, CurrentRunData run)
 {
     // Remember player stats since player object is destroyed when loading next level
     run.CurrentWeapon = player?.CurrentWeapon?.Id ?? WeaponIds.Rifle;
     run.MaxLife       = player.MaxLife;
     run.Life          = player.Life;
 }
Exemple #2
0
 void AdvanceCurrentRun(CurrentRunData run, PlayableCharacterScript player)
 {
     // Advance progress.
     if (run.SpecialLocation == SpecialLocation.BossWorld1)
     {
         // World1 complete, move to world 2 (but first a visit to the shop)
         run.FloorInWorld        = 1;
         run.World               = World.World2;
         run.SpecialLocation     = SpecialLocation.Shop;
         run.ShopKeeperPokeCount = 0; // Start over poke count when changing world
     }
     else if (run.SpecialLocation == SpecialLocation.Shop)
     {
         run.SpecialLocation = SpecialLocation.None;
     }
     else if (run.World == World.World2 && run.FloorInWorld > 1)
     {
         run.FloorInWorld        = 1;
         run.World               = World.World3;
         run.SpecialLocation     = SpecialLocation.Shop;
         run.ShopKeeperPokeCount = 0;
     }
     else if (run.SpecialLocation == SpecialLocation.None)
     {
         // Just completed a standard floor.
         run.FloorInWorld++;
         run.TotalFloor++;
         run.SpecialLocation = SpecialLocation.Shop;
     }
     else
     {
         run.SpecialLocation = SpecialLocation.None;
     }
 }
Exemple #3
0
    void StartGame()
    {
        var stringPath = HumanPlayerController.TrackedPath.AsString();

        PlayerPrefs.SetString("LatestCampPath", stringPath);
        PlayerPrefs.Save();

        // Init the run data
        var player = PlayableCharacters.GetPlayerInScene();

        CurrentRunData.StartNewRun();
        CurrentRunData.Instance.MaxLife              = player.MaxLife;
        CurrentRunData.Instance.Life                 = player.Life;
        CurrentRunData.Instance.CurrentWeapon        = player.CurrentWeapon.Id;
        CurrentRunData.Instance.BulletAmmo           = 999;
        CurrentRunData.Instance.ShellAmmo            = 999;
        CurrentRunData.Instance.StartingCharacterTag = player.tag;
        CurrentRunData.Instance.HasPlayerData        = true;

        GameProgressData.CurrentProgress.QuestProgress.ApplyAllRewards();
        CurrentRunData.StoreState();

        HumanPlayerController.CanShoot = true;
        SceneManager.LoadScene(EnterPortalSceneName, LoadSceneMode.Single);
    }
Exemple #4
0
    void CreatePlayer(Vector3 position)
    {
        string characterTag = CurrentRunData.Instance.StartingCharacterTag;
        var    player       = PlayableCharacters.Instance.InstantiateCharacter(characterTag, position);

        player.transform.SetParent(DynamicObjectRoot);
        playerScript_ = player.GetComponent <PlayableCharacterScript>();

        if (!CurrentRunData.Instance.HasPlayerData)
        {
            // Initialize current run if game is started directly from this scene, and not from camp
            CurrentRunData.StartNewRun();
            SavePlayerDataInCurrentRun(playerScript_, CurrentRunData.Instance);
            CurrentRunData.Instance.HasPlayerData = true;
            CurrentRunData.StoreState();
        }
        else
        {
            InitializePlayerWithCurrentRunData(playerScript_, CurrentRunData.Instance);
        }
    }
Exemple #5
0
 void InitializePlayerWithCurrentRunData(PlayableCharacterScript player, CurrentRunData run)
 {
     player.EquipWeapon(run.CurrentWeapon);
     player.MaxLife = run.MaxLife;
     player.Life    = run.Life;
 }
Exemple #6
0
 public static void RestoreState()
 {
     Instance = JsonUtility.FromJson <CurrentRunData>(state);
 }
Exemple #7
0
 public static void Clear()
 {
     Instance = new CurrentRunData();
 }