Exemple #1
0
    public override IEnemy CreateEnemy(ENUM_Enemy emEnemy, Vector3 SpawnPosition)
    {
        EnemyBuildParam EnemyParam = new EnemyBuildParam();


        switch (emEnemy)
        {
        case ENUM_Enemy.Keraha:
            EnemyParam.NewCharacter = new EnemyKeraha();
            break;

        default:
            Debug.LogWarning("无法创建[" + emEnemy + "]");
            return(null);
        }

        if (EnemyParam.NewCharacter == null)
        {
            return(null);
        }


        EnemyParam.SpawnPosition = SpawnPosition;


        EnemyBuilder theEnemyBuilder = new EnemyBuilder();

        theEnemyBuilder.SetBuildParam(EnemyParam);


        m_BuilderDirector.Construct(theEnemyBuilder);
        return(EnemyParam.NewCharacter as IEnemy);
    }
    // 建立Enemy(Generice版)
    public IEnemy CreateEnemy <T>(ENUM_Weapon emWeapon, Vector3 SpawnPosition, Vector3 AttackPosition) where T : IEnemy, new()
    {
        // 产生Enemy的参数
        EnemyBuildParam EnemyParam = new EnemyBuildParam();

        // 产生对应的Character
        EnemyParam.NewCharacter = new T();
        if (EnemyParam.NewCharacter == null)
        {
            return(null);
        }

        // 设定共用参数
        EnemyParam.emWeapon       = emWeapon;
        EnemyParam.SpawnPosition  = SpawnPosition;
        EnemyParam.AttackPosition = AttackPosition;

        //  产生对应的Builder及设定参数
        EnemyBuilder theEnemyBuilder = new EnemyBuilder();

        theEnemyBuilder.SetBuildParam(EnemyParam);

        // 产生
        m_BuilderDirector.Construct(theEnemyBuilder);
        return(EnemyParam.NewCharacter  as IEnemy);
    }
    public override IEnemy createEnemy(ENUM_Enemy emEnemy, ENUM_Weapon emWeapon, Vector3 spawnPosition)
    {
        //建造参数
        EnemyBuildParam buildParam = new EnemyBuildParam();

        switch (emEnemy)
        {
        case ENUM_Enemy.Zombie:
            buildParam.character = new EnemyZombie();
            break;

        default:
            Debug.Log("不存在该Enemy类型");
            return(null);
        }
        buildParam.weapon        = emWeapon;
        buildParam.spawnPosition = spawnPosition;

        EnemyBuilder enemyBuilder = new EnemyBuilder();

        enemyBuilder.setBuildParam(buildParam);
        m_characterBuilderSystem.construct(enemyBuilder);

        return(buildParam.character as IEnemy);
    }
    // 建立Enemy
    public override IEnemy CreateEnemy(ENUM_Enemy emEnemy, ENUM_Weapon emWeapon, Vector3 SpawnPosition, Vector3 AttackPosition)
    {
        // 產生Enemy的參數
        EnemyBuildParam EnemyParam = new EnemyBuildParam();

        // 產生對應的Character
        switch (emEnemy)
        {
        case ENUM_Enemy.Elf:
            EnemyParam.NewCharacter = new EnemyElf();
            break;

        case ENUM_Enemy.Troll:
            EnemyParam.NewCharacter = new EnemyTroll();
            break;

        case ENUM_Enemy.Ogre:
            EnemyParam.NewCharacter = new EnemyOgre();
            break;

        default:
            Debug.LogWarning("無法建立[" + emEnemy + "]");
            return(null);
        }

        if (EnemyParam.NewCharacter == null)
        {
            return(null);
        }

        // 設定共用參數
        EnemyParam.emWeapon       = emWeapon;
        EnemyParam.SpawnPosition  = SpawnPosition;
        EnemyParam.AttackPosition = AttackPosition;

        //  產生對應的Builder及設定參數
        EnemyBuilder theEnemyBuilder = new EnemyBuilder();

        theEnemyBuilder.SetBuildParam(EnemyParam);

        // 產生
        m_BuilderDirector.Construct(theEnemyBuilder);
        return(EnemyParam.NewCharacter  as IEnemy);
    }
Exemple #5
0
        public override IEnemy CreateEnemy(ENUM_Enemy enumEnemy, ENUM_Weapon enumWeapon,
                                           Vector3 SpawnPostion, Vector3 AttackPostion)
        {
            // 产生Enenmy的参数
            EnemyBuildParam EnemyParam = new EnemyBuildParam();

            switch (enumEnemy)
            {
            case ENUM_Enemy.Elf:
                EnemyParam.NewCharacter = new EnemyElf();
                break;

            case ENUM_Enemy.Troll:
                EnemyParam.NewCharacter = new EnemyTroll();
                break;

            case ENUM_Enemy.Ogre:
                EnemyParam.NewCharacter = new EnemyOgre();
                break;

            default:
                Debug.LogWarning("CreateEnemy:无法产生[" + enumEnemy + "]");
                return(null);
            }

            if (EnemyParam.NewCharacter == null)
            {
                return(null);
            }

            EnemyParam.emWeapon       = enumWeapon;
            EnemyParam.SpawnPosition  = SpawnPostion;
            EnemyParam.AttackPosition = AttackPostion;

            EnemyBuilder theEnemyBuilder = new EnemyBuilder();

            theEnemyBuilder.SetBuildParam(EnemyParam);

            m_BuilderDirector.Construct(theEnemyBuilder);
            return(EnemyParam.NewCharacter as IEnemy);
        }
	// 建立Enemy
	public override IEnemy CreateEnemy( ENUM_Enemy emEnemy, ENUM_Weapon emWeapon, Vector3 SpawnPosition, Vector3 AttackPosition)
	{
		// 產生Enemy的參數
		EnemyBuildParam EnemyParam = new EnemyBuildParam();

		// 產生對應的Character
		switch( emEnemy)
		{
		case ENUM_Enemy.Elf:
			EnemyParam.NewCharacter = new EnemyElf();
			break;
		case ENUM_Enemy.Troll:
			EnemyParam.NewCharacter = new EnemyTroll();
			break;
		case ENUM_Enemy.Ogre:
			EnemyParam.NewCharacter = new EnemyOgre();
			break;
		default:
			Debug.LogWarning("無法建立["+emEnemy+"]");
			return null;
		}

		if( EnemyParam.NewCharacter == null)
			return null;

		// 設定共用參數
		EnemyParam.emWeapon = emWeapon;
		EnemyParam.SpawnPosition = SpawnPosition;
		EnemyParam.AttackPosition = AttackPosition;
				
		//  產生對應的Builder及設定參數
		EnemyBuilder theEnemyBuilder = new EnemyBuilder();
		theEnemyBuilder.SetBuildParam( EnemyParam ); 
		
		// 產生
		m_BuilderDirector.Construct( theEnemyBuilder );
		return EnemyParam.NewCharacter  as IEnemy;
	}
Exemple #7
0
 public override void SetBuildParam(ICharacterBuildParam theParam)
 {
     m_BuildParam = theParam as EnemyBuildParam;
 }
	public override void SetBuildParam( ICharacterBuildParam theParam )
	{
		m_BuildParam = theParam as EnemyBuildParam;	
	}
Exemple #9
0
 public override void setBuildParam(ICharacterBuildParam characterBuildParam)
 {
     m_enemyBuildParam = characterBuildParam as EnemyBuildParam;
 }