/// <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); } } }
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); }
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; }
public void SelectLevel(LevelScriptableObject activeLevel) { MenuController.activeLevel = activeLevel; PlayerPrefs.SetInt("lastLevel", activeLevel.levelId); }
public void PlayLevel(LevelScriptableObject level) { eventSystem.enabled = false; ChangeScene(level.scenePath); }
public void Configure(LevelScriptableObject level) { rows = level.rows; columns = level.columns; }