コード例 #1
0
ファイル: MapManager.cs プロジェクト: KeldaWind/FUTFourthRepo
    public void GetPlayerBackOnRightSpot()
    {
        if (IntersceneManager.intersceneManager != null)
        {
            ArenaParameters parameters = IntersceneManager.intersceneManager.ArenaInterscInformations.GetLaunchedArenaParameters;
            if (parameters != null)
            {
                MapArenaSpot arenaSpot = null;

                foreach (MapArenaSpot spot in mapProgressionManager.GetAllMapArenaSpots)
                {
                    if (spot.GetArenaParameters == parameters)
                    {
                        arenaSpot = spot;
                        arenaSpot.SetDontActivateSincePlayerOut();
                        break;
                    }
                }

                ShipMovements playerShipMvt = playerShip.ShipMvt;
                if (arenaSpot != null)
                {
                    if (arenaSpot.GetPlayerTransformOnceStopped != null)
                    {
                        playerShip.transform.position = arenaSpot.GetPlayerTransformOnceStopped.position;
                        playerShipMvt.SetCurrentRotation(arenaSpot.GetPlayerTransformOnceStopped.rotation.eulerAngles.y);
                    }
                }
            }
        }
    }
コード例 #2
0
 public void SetUp(ArenaParameters parameters)
 {
     if (parameters != null)
     {
         currentArenaParameters = parameters;
     }
 }
コード例 #3
0
    public void StartLaunchArena()
    {
        if (loadingArena)
        {
            return;
        }

        mapManager.SavePlayerDatas();

        MapArenaSpot arenaSpot = mapManager.GetOpenedSpecialPlace as MapArenaSpot;

        if (arenaSpot == null)
        {
            return;
        }

        EquipmentsSet equipmentsSet = mapManager.ShipCompoManager.ComposeEquipmentSet();

        if (equipmentsSet.GetHullEquipment == null)
        {
            Debug.LogWarning("Attention : il n'y a aucune coque sur ce bateau. Impossible de lancer le jeu.");
            return;
        }
        else
        {
            IntersceneManager.intersceneManager.SetPlayerDatas(equipmentsSet);
        }

        ArenaParameters launchedArenaParameters = arenaSpot.GetArenaParameters;
        string          arenaBuildName          = launchedArenaParameters.GetSceneToLoadName;

        try
        {
            IntersceneManager.intersceneManager.MapInterscInformations.SetMapIntersceneInfos(SceneManager.GetActiveScene().name, GameManager.gameManager.Player.transform.position, launchedArenaParameters.GetSpecialSceneToLoadAfterSuccesName);
            IntersceneManager.intersceneManager.ArenaInterscInformations.SetArenaLaunchInformations(launchedArenaParameters);

            //SceneManager.LoadSceneAsync(arenaBuildName);
            sceneToLoad  = arenaBuildName;
            loadingArena = true;
            GameManager.gameManager.LoadScreenManager.StartEndLoad(LaunchArena);
        }
        catch
        {
            Debug.LogWarning("Cette scene n'existe pas ou n'as pas été ajoutée à la liste des scenes buildées");
        }
    }
コード例 #4
0
    public void ShowBeginPanel(bool isTutorial)
    {
        SetUp(ArenaManager.arenaManager.ScoreMng);

        beginPanel.SetActive(true);

        ArenaParameters arenaParameters = scoreManager.GetCurrentArenaParameters;

        if (arenaParameters != null)
        {
            instructionText.text = arenaParameters.GetArenaStartDescription;

            float totalTimeInSeconds = scoreManager.GetCurrentArenaParameters.GetMaximumArenaTimeToHaveStar;
            float seconds            = totalTimeInSeconds % 60;
            float minutes            = (int)(totalTimeInSeconds / 60);

            //timeLimitScoreText.text = "Finish level in less than " + minutes + "'" + (seconds < 10 ? ("0" + seconds.ToString()) : seconds.ToString());
            timeLimitScoreText.text   = /*"Finish the level without hitting any obstacle"*/ "No obstacle hit";
            damageLimitScoreText.text = /*"Take*/ "Less than " + scoreManager.GetCurrentArenaParameters.GetMaximumNumberOfDamagesToHaveStar + " damages";
        }

        if (arenaTypeImage != null)
        {
            ArenaGameMode gameMode = ArenaManager.arenaManager.GetArenaType;
            switch (gameMode)
            {
            case (ArenaGameMode.WavesClearing):
                arenaTypeImage.sprite = clearWaveArenaSprite;
                break;

            case (ArenaGameMode.Escape):
                arenaTypeImage.sprite = escapeArenaSprite;
                break;

            case (ArenaGameMode.EnemyShipPursuit):
                arenaTypeImage.sprite = chaseArenaSprite;
                break;

            case (ArenaGameMode.Assassination):
                arenaTypeImage.sprite = assassinationArenaSprite;
                break;
            }
        }
    }
コード例 #5
0
    public void CheckMapProgression()
    {
        IntersceneManager intersceneManager = IntersceneManager.intersceneManager;

        if (intersceneManager != null)
        {
            bool passedTutorial = false;

            PlayerProgressionDatas progressionDatas = PlayerDataSaver.LoadProgressionDatas();

            ArenaIntersceneInformations arenaIntersceneInformations = intersceneManager.ArenaInterscInformations;

            #region Tutorial
            if (arenaIntersceneInformations.GetNeedToPassTutorial)
            {
                if (arenaIntersceneInformations.GetArenaPassed)
                {
                    progressionDatas.SetPassedTutorial();
                    arenaIntersceneInformations.SetNeedToPassTutorial(false);
                    PlayerDataSaver.SavePlayerProgressionDatas(progressionDatas.GetAllPassedArenaDatas, true);
                }
            }

            if (progressionDatas != null)
            {
                passedTutorial = progressionDatas.GetPassedTuto;
            }
            #endregion

            #region Already Unlocked

            #region V2
            List <PassedArenaData> allPassedArenaDatas = new List <PassedArenaData>();
            if (progressionDatas != null)
            {
                allPassedArenaDatas = progressionDatas.GetAllPassedArenaDatas;
                if (allPassedArenaDatas == null)
                {
                    allPassedArenaDatas = new List <PassedArenaData>();
                }

                foreach (PassedArenaData datas in allPassedArenaDatas)
                {
                    foreach (MapArenaSpot arenaSpot in allMapArenaSpots)
                    {
                        if (arenaSpot.GetArenaParameters.GetSceneToLoadName == datas.GetArenaName && datas.GetArenaPassed)
                        {
                            arenaSpot.UnlockNextProgressionContent(false, datas.GetNumberOfStars);
                            break;
                        }
                    }
                }
            }
            else
            {
                Debug.Log("pas encore d'arènes débloquées");
            }
            #endregion
            #endregion

            #region Just Unlocked
            ArenaParameters lastArenaParameters = arenaIntersceneInformations.GetLaunchedArenaParameters;
            if (lastArenaParameters == null)
            {
                arenaIntersceneInformations.SetArenaPassed(false, 0);

                if (intersceneManager.ArenaInterscInformations.GetJustPassedTutorial)
                {
                    intersceneManager.ArenaInterscInformations.SetJustPassedTutorial(false);
                    if (cinematicToPlayAfterTutorial != null)
                    {
                        cinematicToPlayAfterTutorial.PlayCinematic();
                    }
                }

                return;
            }

            #region V2
            List <string> passedArenaNames = new List <string>();

            if (allPassedArenaDatas == null)
            {
                allPassedArenaDatas = new List <PassedArenaData>();
            }

            foreach (PassedArenaData datas in allPassedArenaDatas)
            {
                if (datas.GetArenaPassed)
                {
                    passedArenaNames.Add(datas.GetArenaName);
                }
            }

            if (arenaIntersceneInformations.GetArenaPassed)
            {
                int stars = arenaIntersceneInformations.GetNumberOfStars;

                if (passedArenaNames.Contains(lastArenaParameters.GetSceneToLoadName))
                {
                    foreach (MapArenaSpot arenaSpot in allMapArenaSpots)
                    {
                        if (arenaSpot.GetArenaParameters.GetSceneToLoadName == lastArenaParameters.GetSceneToLoadName)
                        {
                            if (stars > arenaSpot.GetStarsNumber)
                            {
                                arenaSpot.UnlockNextProgressionContent(false, stars);
                            }

                            foreach (PassedArenaData datas in allPassedArenaDatas)
                            {
                                if (datas.GetArenaName == lastArenaParameters.GetSceneToLoadName)
                                {
                                    datas.ChangeNumberOfStars(stars);
                                    break;
                                }
                            }
                            PlayerDataSaver.SavePlayerProgressionDatas(allPassedArenaDatas, passedTutorial);
                            break;
                        }
                    }
                    return;
                }

                foreach (MapArenaSpot arenaSpot in allMapArenaSpots)
                {
                    if (arenaSpot.GetArenaParameters.GetSceneToLoadName == lastArenaParameters.GetSceneToLoadName)
                    {
                        arenaSpot.UnlockNextProgressionContent(true, stars);
                        break;
                    }
                }

                allPassedArenaDatas.Add(new PassedArenaData(lastArenaParameters, true, stars));
                PlayerDataSaver.SavePlayerProgressionDatas(allPassedArenaDatas, passedTutorial);
            }
            #endregion
            #endregion

            bool arenaPassed   = arenaIntersceneInformations.GetArenaPassed;
            int  numberOfStars = arenaIntersceneInformations.GetNumberOfStars;

            //arenaIntersceneInformations.SetArenaLaunchInformations(null);
            arenaIntersceneInformations.SetArenaPassed(false, 0);
        }
    }
コード例 #6
0
 public void Reinitialize()
 {
     launchedArenaParameters = null;
     needToPassTutorial      = true;
 }
コード例 #7
0
 public void SetArenaLaunchInformations(ArenaParameters arenaParameters)
 {
     launchedArenaParameters = arenaParameters;
 }
コード例 #8
0
 public PassedArenaData(ArenaParameters arenaParameters, bool passed, int arenaStarsNumber)
 {
     arenaName     = arenaParameters.GetSceneToLoadName;
     arenaPassed   = passed;
     numberOfStars = arenaStarsNumber;
 }