/// <summary>
    /// Iterates over the current level's waves and adds enemies to the queue
    /// </summary>
    /// <param name="level"></param>
    private void LoadEnemyQueue(LevelScriptableObject level)
    {
        _enemyQueue.Clear();

        foreach (Wave w in level.Waves)
        {
            Debug.Assert(w.HealthModifier != 0);

            for (int i = 0; i < w.NumberOfSpawns; i++)
            {
                var go = ObjectPool.Instance.GetObject(w.EnemyToSpawn.PrefabToRender);

                go.transform.position = Spawner.transform.position;
                go.layer = Layer.Enemy;

                var ec = go.GetComponent <EnemyController>();
                ec.target = this.Target;
                ec.Enemy  = w.EnemyToSpawn;
                ec.Health = (int)(w.EnemyToSpawn.Health * w.HealthModifier);

                go.SetActive(false);

                _enemyQueue.Enqueue(go);
            }
        }
    }
Exemple #2
0
 public void Configure(LevelScriptableObject level)
 {
     scoreToCompleteCurrentLevel = level.rows * level.columns;
     currentScore = 0;
     currentLives = level.lives;
     UIHandler.instance.SetLevelText(currentLevelIndex + 1);
     UIHandler.instance.SetLivesText(currentLives);
 }
 public BoardFactory(LevelScriptableObject levelScriptable)
 {
     this.levelScriptable = levelScriptable;
     height      = levelScriptable.height;
     width       = levelScriptable.width;
     enemyCount  = levelScriptable.enemyCount;
     boardMatrix = new GameObject[height, width];
     board       = new GameObject("Board");
 }
    public static bool OpenEditor(int instanceId, int line)
    {
        LevelScriptableObject level = EditorUtility.InstanceIDToObject(instanceId) as LevelScriptableObject;

        if (level != null)
        {
            LevelEditorWindow.EditLevel(level);
            return(true);
        }
        return(false);
    }
    // Entry point
    public static void EditLevel(LevelScriptableObject levelToEdit)
    {
        // calls OnEnable
        LevelEditorWindow window = GetWindow <LevelEditorWindow>();

        window.serializedLevel = new SerializedObject(levelToEdit);

        // Load values from serializedLevel and build the grid
        window.LoadAndSetupGrid();

        // do the binding and stuff
        window.SetupEditor();
    }
    private void OnEnable()
    {
        // get the inspected LevelScriptableObject
        inspectedLevel = target as LevelScriptableObject;

        root = new VisualElement();

        // load UIElements assets
        tree       = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/Custom Inspectors/LevelScriptableObjectCustomInspector.uxml");
        stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Editor/Custom Inspectors/LevelScriptableObjectCustomInspector.uss");

        cellTemplate = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Templates/LevelCell.uxml");

        root.styleSheets.Add(stylesheet);
    }
Exemple #7
0
        public BoardController(LevelScriptableObject levelScriptableObject)
        {
            this.levelScriptable = levelScriptableObject;
            boardMatrix          = new GameObject[levelScriptableObject.height, levelScriptableObject.width];
            height    = levelScriptableObject.height;
            width     = levelScriptableObject.width;
            bombRange = levelScriptable.bombRange;
            cam       = Camera.main;
            cam.transform.position = new Vector3(width / 2, width / 2, -5);

            boardFactory = new BoardFactory(levelScriptable);
            boardMatrix  = boardFactory.GetBoardMatrix(true);
            GameService.Instance.OnBombDestroyed += OnBombDestroyed;
            GameService.Instance.ResetEverything += ResetGame;
        }
Exemple #8
0
 public void SelectLevel(LevelScriptableObject activeLevel)
 {
     MenuController.activeLevel = activeLevel;
     PlayerPrefs.SetInt("lastLevel", activeLevel.levelId);
 }
Exemple #9
0
    public void PlayLevel(LevelScriptableObject level)
    {
        eventSystem.enabled = false;

        ChangeScene(level.scenePath);
    }
 public void Configure(LevelScriptableObject level)
 {
     rows    = level.rows;
     columns = level.columns;
 }