Ejemplo n.º 1
0
        public static BaseEnemy CreateNew(EnemyTypes enemyType, SerializableChromosome chromosome = null, bool isHorde = false)
        {
            BaseEnemy newEnemy;

            switch (enemyType)
            {
            case EnemyTypes.Chicken1: newEnemy = Chicken1EnemyFactory.CreateNew(); break;

            case EnemyTypes.Chicken2: newEnemy = Chicken2EnemyFactory.CreateNew(); break;

            case EnemyTypes.Chicken3: newEnemy = Chicken3EnemyFactory.CreateNew(); break;

            case EnemyTypes.Rabbit1: newEnemy = Rabbit1EnemyFactory.CreateNew(); break;

            case EnemyTypes.Rabbit2: newEnemy = Rabbit2EnemyFactory.CreateNew(); break;

            case EnemyTypes.Rabbit3: newEnemy = Rabbit3EnemyFactory.CreateNew(); break;

            case EnemyTypes.Sheep1: newEnemy = Sheep1EnemyFactory.CreateNew(); break;

            case EnemyTypes.Sheep2: newEnemy = Sheep2EnemyFactory.CreateNew(); break;

            case EnemyTypes.Sheep3: newEnemy = Sheep3EnemyFactory.CreateNew(); break;

            case EnemyTypes.Cow1: newEnemy = Cow1EnemyFactory.CreateNew(); break;

            case EnemyTypes.Cow2: newEnemy = Cow2EnemyFactory.CreateNew(); break;

            case EnemyTypes.Cow3: newEnemy = Cow3EnemyFactory.CreateNew(); break;

            case EnemyTypes.Pig1: newEnemy = Pig1EnemyFactory.CreateNew(); break;

            case EnemyTypes.Pig2: newEnemy = Pig2EnemyFactory.CreateNew(); break;

            case EnemyTypes.Pig3: newEnemy = Pig3EnemyFactory.CreateNew(); break;

            default:
                throw new ArgumentOutOfRangeException(nameof(enemyType), enemyType, null);
            }

            if (isHorde)
            {
                newEnemy.RushEndPoint();
            }
            else
            {
                newEnemy.OnDeath += OnCreateAction;
                newEnemy.FollowLine();
                newEnemy.SetGenetics(chromosome ?? GeneticsManager.GenerateNewChromsome());
            }

            return(newEnemy);
        }