public void AddPart(Declarations.WavePart wavePart, WavePart part)
 {
     Debug.Log("Added part");
     parts.Add(part);
     data.WaveParts.Add(wavePart);
     partCountText.text = "PartCount: " + data.WaveParts.Count.ToString();
 }
 public void SetData(int index, Wave wave, Declarations.WavePart wavePart)
 {
     data           = wavePart;
     parent         = wave;
     indexText      = transform.GetChild(0).GetComponent <Text>();
     indexText.text = (index + 1).ToString();
     if (wavePart.Type == Declarations.WavePartType.Spawn)
     {
         var enemyType  = ((Declarations.SpawnWavePart)wavePart).EnemyToSpawn.Type;
         var options    = new List <Dropdown.OptionData>();
         var typeIndex  = -1;
         var enemyTypes = (Declarations.EnemyType[])Enum.GetValues(typeof(Declarations.EnemyType));
         for (int i = 0; i < enemyTypes.Length; i++)
         {
             if (enemyType == enemyTypes[i])
             {
                 typeIndex = i;
             }
             options.Add(new Dropdown.OptionData(enemyTypes[i].ToString()));
         }
         if (typeIndex != -1)
         {
             typeDropdown.ClearOptions();
             typeDropdown.AddOptions(options);
             typeDropdown.value = typeIndex;
         }
         else
         {
             wave.DeletePart(index);
             Destroy(gameObject);
         }
     }
     else
     {
         delayField.text = ((Declarations.DelayWavePart)wavePart).Delay.ToString();
     }
 }