private EndCondition GenerateEndCondition(EndConditionName conditionName)
            {
                EndCondition condition;

                switch (conditionName)
                {
                case EndConditionName.HeroDeath:
                    condition = new HeroDeathCondition();
                    break;

                case EndConditionName.KillAllEnemy:
                    condition = new KillAllEnemyCondition();
                    break;

                case EndConditionName.ReachCheckpoint:
                    condition = new ReachCheckpointCondition();
                    break;

                case EndConditionName.CountdownTime:
                    condition = new CountdownTimeCondition();
                    break;

                case EndConditionName.TotalBattleTime:
                    condition = new TotalBattleTimeCondition();
                    break;

                default:
                    throw new Exception(string.Format(
                                            "Not recognized end condition name of '{0}'", conditionName
                                            ));
                }

                return(condition);
            }
 protected void DrawAddGoal()
 {
     if (GUILayout.Button("Add Goal", GUILayout.Width(80)))
     {
         EndCondition condition = new KillAllEnemyCondition();
         goals.Add(condition);
     }
 }