Example #1
0
    private void SpwanItem(SpawnedItemDataObject spwanedItem)
    {
        eChromieType colorType;
        if (_overrideColor != eChromieType.None)
        {
            colorType = _overrideColor;
        }
        else
        {
            colorType = ColorForSpwanColorType(spwanedItem.SpwanedColor);
        }
        ChromieController chromieController = CreateChromie(colorType);

        if (!_allChromiez.Contains(chromieController))
        {
            _allChromiez.Add(chromieController);
        }

        Vector3 spwanPosition = _spwanBasePosition;
        spwanPosition.x += spwanedItem.XPosition * SPWAN_POSITION_MULTIPLIER;
        chromieController.gameObject.transform.position = spwanPosition;

        Vector2 spwanForce = spwanedItem.ForceVector;
        spwanForce.y += FORCE_VECTOR_MODIFIER * (GameplaySettings.Instance.GameSpeedMultiplier * 0.7f);
        chromieController.gameObject.GetComponent<Rigidbody2D>().AddForce(spwanForce);
        chromieController.gameObject.GetComponent<Rigidbody2D>().angularVelocity = Random.Range(-90, 90);

        GameplayEventsDispatcher.SendChromieSpwaned(chromieController);
    }
Example #2
0
 private void AddNewSpwanItem(eSpwanedColorType spwanItemType)
 {
     if (_currentSequance != null && _currentWave != null)
     {
         SpawnedItemDataObject newSpwanItem = new SpawnedItemDataObject();
         newSpwanItem.SpwanedColor = spwanItemType;
         newSpwanItem.XPosition = 0;
         newSpwanItem.ForceVector = new Vector2(0, 100);
         _currentWave.SpawnedItems.Add(newSpwanItem);
     }
 }
Example #3
0
    private void DrawSequancesList(Rect rect)
    {
        Color panelColor = new Color(0.2f, 0.2f, 0.4f); ;
        EditorGUI.DrawRect(new Rect(0, 0, rect.width, rect.height), panelColor);

        EditorGUILayout.BeginVertical();
        {
            if (GUILayout.Button("Load From File"))
            {
                LoadWavesFromFile();
            }

            if (GUILayout.Button("Save"))
            {

            }

            _sequancesListScrollPosition = EditorGUILayout.BeginScrollView(_sequancesListScrollPosition);
            {
                if (_sequances == null)
                {
                    _sequances = new List<SequanceDataObject>();
                }

                panelColor.a = 0.5f;
                GUI.backgroundColor = panelColor;
                if (_sequancesList == null)
                {
                    _sequancesList = new ReorderableList(_sequances, typeof(SequanceDataObject), true, false, true, true);

                    _sequancesList.drawElementCallback = (Rect cellRect, int index, bool isActive, bool isFocused) => {

                        if (_sequances != null && _sequances[index] != null && _sequances[index].Identifier != null)
                        {
                            GUI.Label(cellRect, _sequances[index].Identifier);
                        }

                    };

                    _sequancesList.onSelectCallback = (list) =>
                    {
                        _currentSequance = _sequances[list.index];
                        _currentWave = null;
                        _currentSpwanItem = null;
                    };

                    _sequancesList.onAddCallback = (list) =>
                    {
                        int newWaveId = _sequances.Count;
                        SequanceDataObject newSequance = new SequanceDataObject();
                        newSequance.Identifier = "sequance." + newWaveId.ToString();
                        _sequances.Add(newSequance);
                    };

                }

                if (_sequancesList != null)
                {
                    _sequancesList.DoLayoutList();
                }

                GUI.backgroundColor = Color.white;
            }
            EditorGUILayout.EndScrollView();
        }
        EditorGUILayout.EndVertical();
    }
    private static void DrawSpwanedItemsList(WavesEditor wavesEditor)
    {
        if (wavesEditor._currentWave != null)
        {
            _spawnedItemsListScrollPosition = EditorGUILayout.BeginScrollView(_spawnedItemsListScrollPosition);
            {
                if (wavesEditor._currentWave != _selectedWave && wavesEditor._currentWave.SpawnedItems != null)
                {
                    _spawnedItemsList = new ReorderableList(wavesEditor._currentWave.SpawnedItems, typeof(SpawnedItemDataObject), true, false, true, true);

                    _spawnedItemsList.drawElementCallback = (Rect cellRect, int index, bool isActive, bool isFocused) => {

                        if (wavesEditor._currentWave != null && wavesEditor._currentWave.SpawnedItems != null && wavesEditor._currentWave.SpawnedItems.Count > index)
                        {
                            if (wavesEditor._currentWave.SpawnedItems[index] != null)
                            {
                                GUI.DrawTexture(new Rect(cellRect.x, cellRect.y, 16, 16), TeaxtureForSpwanItem(wavesEditor._currentWave.SpawnedItems[index].SpwanedColor, wavesEditor));
                            }
                        }
                    };

                    _spawnedItemsList.onSelectCallback = (list) =>
                    {
                        wavesEditor._currentSpwanItem = wavesEditor._currentWave.SpawnedItems[list.index];
                        _selectedTab = eWaveEditorTabTab.Item;
                    };

                    _spawnedItemsList.onAddCallback = (list) =>
                    {
                        SpawnedItemDataObject newItem = new SpawnedItemDataObject();
                        newItem.ForceVector = new Vector2(0, 144);
                        wavesEditor._currentWave.SpawnedItems.Add(newItem);
                    };

                    _selectedWave = wavesEditor._currentWave;
                }

                if (_spawnedItemsList != null)
                {
                    _spawnedItemsList.DoLayoutList();
                }

            }
            EditorGUILayout.EndScrollView();
        }
    }
    private static void AddItem(WavesEditor wavesEditor, eSpwanedColorType spwnaedItemType)
    {
        if (wavesEditor._currentWave != null)
        {
            if (wavesEditor._currentWave.SpawnedItems == null)
            {
                wavesEditor._currentWave.SpawnedItems = new List<SpawnedItemDataObject>();
            }

            SpawnedItemDataObject newItem = new SpawnedItemDataObject();
            newItem.SpwanedColor = spwnaedItemType;
            newItem.ForceVector = new Vector2(0, 144);

            wavesEditor._currentWave.SpawnedItems.Add(newItem);
        }
    }
    private static void DrawSpwanItem(SpawnedItemDataObject spwanItem, Rect previewRect, WavesEditor wavesEditor)
    {
        Texture2D itemTexture = null;
        switch(spwanItem.SpwanedColor)
        {
            case eSpwanedColorType.BottomLeft:
                {
                    itemTexture = wavesEditor._leftBottomTexture;
                    break;
                }
            case eSpwanedColorType.BottomRight:
                {
                    itemTexture = wavesEditor._rightBottomTexture;
                    break;
                }
            case eSpwanedColorType.RandomCorner:
                {
                    itemTexture = wavesEditor._randomTexture;
                    break;
                }
            case eSpwanedColorType.TopLeft:
                {
                    itemTexture = wavesEditor._leftTopTexture;
                    break;
                }
            case eSpwanedColorType.TopRight:
                {
                    itemTexture = wavesEditor._rightTopTexture;
                    break;
                }
        }

        Rect itemRect = RectForSpwanItemInPreview(previewRect, spwanItem.XPosition);

        Rect arrowRect = DrawForceArrow(itemRect.position, spwanItem.ForceVector, wavesEditor._arrowTexture);

        Graphics.DrawTexture(itemRect, itemTexture);

        WavesEditorCollider itemCollider = null;
        WavesEditorCollider arrowCollideer = null;
        foreach (WavesEditorCollider collider in _collidersList)
        {
            if (collider.ColliderType == WavesEditorCollider.eColliderType.Item && collider.SpwanItem == spwanItem)
            {
                itemCollider = collider;
            }
            if (collider.ColliderType == WavesEditorCollider.eColliderType.Arrow && collider.SpwanItem == spwanItem)
            {
                arrowCollideer = collider;
            }
        }

        if (itemCollider == null)
        {
            itemCollider = new WavesEditorCollider();
            itemCollider.SpwanItem = spwanItem;
            itemCollider.ColliderType = WavesEditorCollider.eColliderType.Item;
            _collidersList.Add(itemCollider);
        }

        if (arrowCollideer == null)
        {
            arrowCollideer = new WavesEditorCollider();
            arrowCollideer.SpwanItem = spwanItem;
            arrowCollideer.ColliderType = WavesEditorCollider.eColliderType.Arrow;
            _collidersList.Add(arrowCollideer);
        }

        if (itemCollider != null)
        {
            itemCollider.Center = itemRect.center;
            itemCollider.Radius = 64f;
        }

        if (arrowCollideer != null)
        {
            arrowCollideer.Center = new Vector2(itemRect.center.x + spwanItem.ForceVector.x, itemRect.center.y - spwanItem.ForceVector.y);
            arrowCollideer.Radius = 64f;
        }
    }