Exemplo n.º 1
0
        //Macros should be defined for each of the enemy types
        public EnemyFactory SelectFactory(Property.EnemyType type)
        {
            switch (type)
            {
            case Property.EnemyType.Grunt1:
            {
                return(new grunt1Factory());
            }

            case Property.EnemyType.Grunt2:
            {
                return(new grunt2Factory());
            }

            case Property.EnemyType.MidBoss:
            {
                return(new midbossFactory());
            }

            case Property.EnemyType.FinalBoss:
            {
                return(new finalbossFactory());
            }

            default:
                return(new grunt1Factory());
            }
        }
Exemplo n.º 2
0
        public static Enemy CreateEnemey(Vector2 pos, Property.EnemyType t, int movementStrategy, int bulletStrategy)
        {
            EnemyFactorySelector enemySelection = new EnemyFactorySelector();
            EnemyFactory         enemyFactory   = enemySelection.SelectFactory(t);            // enemy factory will become the necessary factory depending on what enemy type is passed in
            Enemy newEnemy = enemyFactory.CreateEnemy(pos, movementStrategy, bulletStrategy); // A unique ID must be set in the factory

            return(newEnemy);
        }