示例#1
0
 public void OnPointerClick(PointerEventData data)
 {
     if (Interactable)
     {
         LevelDataLoader.LoadLatestQualifiedLevel();
     }
 }
示例#2
0
    private static void LoadLevel()
    {
        LevelDataLoader.LoadLevelData(LevelDataLoader.FullPath);
        foreach (var row in LevelDataLoader.LevelData.TileMap)
        {
            if (row.Length != BoardManager.BoardSize)
            {
                throw new Exception("Файл уровня поврежден.");
            }
        }
        if (LevelDataLoader.LevelData.TileMap.Length != BoardManager.BoardSize)
        {
            throw new Exception("Файл уровня поврежден.");
        }
        foreach (var row in LevelDataLoader.LevelData.ChipMap)
        {
            if (row.Length != BoardManager.BoardSize)
            {
                throw new Exception("Файл уровня поврежден.");
            }
        }
        if (LevelDataLoader.LevelData.ChipMap.Length != BoardManager.BoardSize)
        {
            throw new Exception("Файл уровня поврежден.");
        }

        CreateTileGrid(LevelDataLoader.LevelData.TileMap);
        FillByPresetChips(LevelDataLoader.LevelData.ChipMap);
        FillByPseudoRandomChips();
        RemoveMatches();
        BoardManager.ScoreAndFallUntilSettle();
    }
示例#3
0
    private void Awake()
    {
        // Why on earth are you destroying the level data loader?!
        LevelDataLoader levelDataLoader = FindObjectOfType <LevelDataLoader>();

        if (levelDataLoader != null)
        {
            Destroy(levelDataLoader.gameObject);
        }
        DontDestroyOnLoad(this);
    }
示例#4
0
    private void ToggleLevelSelectOverride()
    {
        LevelNavigator navigator = FindObjectOfType <LevelNavigator>();

        // If the navigator exists then toggle its override
        if (navigator)
        {
            LevelID maxID = new LevelID(LevelDataLoader.MaxLevel() + 1, 1);
            navigator.ToggleOverride(maxID);
        }
    }
示例#5
0
    private void SingletonPattern()
    {
        if (Instance == null)
        {
            Instance = this;
        }

        else if (Instance != this)
        {
            Destroy(gameObject);
        }
    }
示例#6
0
    public void Start()
    {
        // Create a level select UI for every level
        int maxLevel = LevelDataLoader.MaxLevel();

        uis = new LevelSelectUI[maxLevel + 1];

        for (int level = 0; level <= maxLevel; level++)
        {
            uis[level] = Instantiate(levelUIPrefab, levelUIGroup.transform);
            uis[level].Setup(level);
        }
    }
示例#7
0
    private void Awake()
    {
        _dataLoader = GetComponent <LevelDataLoader>();

        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        DontDestroyOnLoad(gameObject);
        board = GetComponentsInChildren <Board>()[0];
    }
示例#8
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        _dataLoader = GetComponent <LevelDataLoader>();
        //This should be some kind of tile dict
        tiles.Add(0, background);
        tiles.Add(1, floor);
        tiles.Add(2, obstacle);
        tiles.Add(3, passage);
    }
示例#9
0
    private void OnGameOver()
    {
        if (mainObjectivesCompleted)
        {
            OpenWindow(objectiveFinishedWindow, LevelPassedConversation);
        }
        else
        {
            // Instantiate a copy of the restart conversation and say it
            GameManager     gameManager         = GameManager.Instance;
            NPCConversation restartConversation = gameManager.LevelData.RestartConversation.InstantiateAndSay();
            gameManager.m_dialogueManager.StartInteractiveConversation();

            // When the conversation ends then show the fail window
            restartConversation.OnConversationEnded(() =>
            {
                OpenWindow(failWindow, () => LevelDataLoader.ReloadLevel(), () => SceneManager.LoadScene("LevelMenu"));
            });
        }
    }
示例#10
0
    private void OnSuccessConversationEnded()
    {
        // Update the save data with the id of the level we are qualified to go to
        LevelEndingData ending = GameManager.Instance.LevelData.Ending;

        SaveData.QualifyForLevel(ending.GetNextLevelID());

        // Compute the rating for this level
        int rating = LevelRatingSystem.RateCurrentLevel();

        SaveData.SetLevelRating(LevelID.Current(), rating);

        // Save changes to the save data
        SaveData.Save();

        // Let the game manager handle level exiting
        GameManager.Instance.HandleExitLevel();

        // Open the success window
        OpenWindow(successWindow, () => LevelDataLoader.LoadNextLevel(), () => SceneManager.LoadScene("LevelMenu"));
    }
示例#11
0
    public void Setup(int levelNumber)
    {
        // Set the level number state
        this.levelNumber = levelNumber;

        // Get a list of all enclosures for this level
        LevelData[] enclosures = LevelDataLoader.GetAllLevelEnclosures(levelNumber);
        enclosureUIs = new LevelSelectEnclosureUI[enclosures.Length];

        // Create a UI to select each enclosure for this level
        for (int i = 0; i < enclosures.Length; i++)
        {
            enclosureUIs[i] = Instantiate(enclosureUI, enclosureUIGroup.transform);
            enclosureUIs[i].Setup(enclosures[i]);
        }

        // Disable the outline
        outline.SetActive(false);
        outline.transform.SetAsLastSibling();

        // Set the disable overlay if we are not yet qualified to try this level
        overlay.SetActive(LatestLevelQualified.LevelNumber < levelNumber);
        overlay.transform.SetAsLastSibling();
    }
 public void ReloadLevel()
 {
     LevelDataLoader.ReloadLevel();
 }
 public void LoadNextLevel(string level)
 {
     LevelDataLoader.LoadLevel(level);
 }
 private void OnConversationEnded()
 {
     LevelDataLoader.LoadLevel(nextLevelName);
 }
示例#15
0
 public void LoadLevel() => LevelDataLoader.LoadLevel(enclosure);