Beispiel #1
0
 public void Init(LevelSettingsDatabase _levelSettingsDatabase,
                  LevelManager _levelManager,
                  LevelController _levelController,
                  ObjectSpritesDatabase _objectSpritesDatabase,
                  EnergyController _energyController,
                  HintsController _hintsController)
 {
     uiLevelSelectView.Init(_levelSettingsDatabase, _levelManager, _energyController);
     uiLevelSelectView.Show();
     uiLevelWindowView.Init(_levelController, _objectSpritesDatabase, _energyController, _hintsController, uiLevelSelectView);
 }
Beispiel #2
0
 public void Init(LevelSettingsDatabase _levelSettingsDatabase, LevelManager _levelManager,
                  EnergyController _energyController)
 {
     levelManager     = _levelManager;
     energyController = _energyController;
     for (int i = 0; i < _levelSettingsDatabase.LevelSettings.Count; i++)
     {
         ObjectPool.GetObjectFromPool <UILevelSelectButton>(UILevelMenuPrefab, LevelMenuParent)
         .Init(_levelSettingsDatabase.LevelSettings[i].LevelName,
               _levelSettingsDatabase.LevelSettings[i].EnergyCost, _levelManager, i, energyController);
     }
     levelManager.OnLevelSelect      += HideThis;
     energyController.OnEnergyUpdate += UpdateEnergyText;
     UpdateEnergyText(energyController.EnergyValue);
     energyButton.onClick.AddListener(AddEnergy);
 }
Beispiel #3
0
    public override void OnInspectorGUI()
    {
        _levelSettingsDatabase = (LevelSettingsDatabase)target;
        serializedObject.Update();

        for (int j = 0; j < _levelSettingsDatabase.LevelSettings.Count; j++)
        {
            EditorGUILayout.LabelField("Level " + j, EditorStyles.boldLabel);

            EditorGUI.indentLevel++;

            _levelSettingsDatabase.LevelSettings[j].LevelName =
                EditorGUILayout.TextField("Level name: ", _levelSettingsDatabase.LevelSettings[j].LevelName);
            _levelSettingsDatabase.LevelSettings[j].levelBehaviour =
                (LevelBehaviour)EditorGUILayout.ObjectField(_levelSettingsDatabase.LevelSettings[j].levelBehaviour,
                                                            typeof(LevelBehaviour));
            if (_levelSettingsDatabase.LevelSettings[j].levelBehaviour != null)
            {
                _levelSettingsDatabase.LevelSettings[j].ItemsCount = EditorGUILayout.IntField("Level items count: ",
                                                                                              Mathf.Clamp(_levelSettingsDatabase.LevelSettings[j].ItemsCount, 1,
                                                                                                          _levelSettingsDatabase.LevelSettings[j].levelBehaviour.MaximumLevelItems()));
            }
            _levelSettingsDatabase.LevelSettings[j].LevelTimeInSeconds = EditorGUILayout.FloatField("LevelTime: ",
                                                                                                    _levelSettingsDatabase.LevelSettings[j].LevelTimeInSeconds);
            _levelSettingsDatabase.LevelSettings[j].EnergyCost = EditorGUILayout.IntField("Energy Cost: ",
                                                                                          _levelSettingsDatabase.LevelSettings[j].EnergyCost);

            EditorGUI.indentLevel++;
            EditorGUILayout.LabelField("Level Items : ");
            for (int i = 0; i < _levelSettingsDatabase.LevelSettings[j].LevelItems.Count; i++)
            {
                _levelSettingsDatabase.LevelSettings[j].LevelItems[i] =
                    (ItemList)EditorGUILayout.EnumPopup(_levelSettingsDatabase.LevelSettings[j].LevelItems[i]);
            }

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Add Item"))
            {
                _levelSettingsDatabase.LevelSettings[j].LevelItems.Add(0);
            }

            if (GUILayout.Button("Remove Item"))
            {
                if (_levelSettingsDatabase.LevelSettings[j].LevelItems.Count > 1)
                {
                    _levelSettingsDatabase.LevelSettings[j].LevelItems.Remove(_levelSettingsDatabase.LevelSettings[j]
                                                                              .LevelItems[_levelSettingsDatabase.LevelSettings[j].LevelItems.Count - 1]);
                }
            }

            EditorGUILayout.EndHorizontal();
            EditorGUI.indentLevel--;
            EditorGUI.indentLevel--;
        }

        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Add Level"))
        {
            _levelSettingsDatabase.LevelSettings.Add(new LevelSettings());
        }

        if (GUILayout.Button("Remove Level"))
        {
            if (_levelSettingsDatabase.LevelSettings.Count > 1)
            {
                _levelSettingsDatabase.LevelSettings.Remove(
                    _levelSettingsDatabase.LevelSettings[_levelSettingsDatabase.LevelSettings.Count - 1]);
            }
        }

        EditorGUILayout.EndHorizontal();


        EditorUtility.SetDirty(target);
    }
Beispiel #4
0
 public LevelManager(LevelSettingsDatabase _levelSettingsDatabase, LevelController levelController)
 {
     levelSettingsDatabase = _levelSettingsDatabase;
     _levelController      = levelController;
     //OnLevelSelect += SelectLevel;
 }