public override void Execute()
    {
        IEnemy enemy = null;

        switch (mEnemyType)
        {
        case EnemyType.Elf:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyEif>(mWeaponType, mPosition, 1) as IEnemy;
            break;

        case EnemyType.Ogre:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyOgre>(mWeaponType, mPosition, 1) as IEnemy;
            break;

        case EnemyType.Troll:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyTroll>(mWeaponType, mPosition, 1) as IEnemy;
            break;

        default:
            Debug.LogError("无法执行命令,无法根据EnemyType:" + mEnemyType + "创建俘兵");
            return;
        }
        //将生成的俘兵从敌人list中移除 并加入士兵list
        GameFacade.Instance.RemoveEnemy(enemy);
        SoldierCaptive captive = new SoldierCaptive(enemy);

        GameFacade.Instance.AddSoldier(captive);
    }
    public override void Excute()
    {
        IEnemy enemy = null;

        switch (mEnemyType)
        {
        case EnemyType.Elf:
            enemy = FactoryManager.EnemyFactory.CreateCharacter <EnemyElf>(mWeaponType, mPos, mLv) as IEnemy;
            break;

        case EnemyType.Ogre:
            enemy = FactoryManager.EnemyFactory.CreateCharacter <EnemyOgre>(mWeaponType, mPos, mLv) as IEnemy;
            break;

        case EnemyType.Troll:
            enemy = FactoryManager.EnemyFactory.CreateCharacter <EnemyTroll>(mWeaponType, mPos, mLv) as IEnemy;
            break;

        default:
            break;
        }
        GameFacade.Instance.removeEnemy(enemy);
        SoldierCaptive captive = new SoldierCaptive(enemy);

        GameFacade.Instance.addSoldier(captive);
    }
    public override void Execute()
    {
        IEnemy enemy = null;

        switch (mEnemyType)
        {
        case EnemyType.Elf:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyElf>(mWeaponType, mPosition) as IEnemy;
            break;

        case EnemyType.Ogre:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyElf>(mWeaponType, mPosition) as IEnemy;
            break;

        case EnemyType.Troll:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyElf>(mWeaponType, mPosition) as IEnemy;
            break;

        default:
            Debug.LogError("无法创建俘兵:" + mEnemyType); return;
        }
        GameFacade.Insance.RemoveEnemy(enemy);
        SoldierCaptive captive = new SoldierCaptive(enemy);

        GameFacade.Insance.AddSoldier(captive);
    }
    public override void Excute()
    {
        IEnemy enemy = null;

        switch (mEnemyType)
        {
        case EnemyType.Elf:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyElf>(mWeaponType, mPosition, mLv) as IEnemy;
            break;

        case EnemyType.Ogre:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyOgre>(mWeaponType, mPosition, mLv) as IEnemy;
            break;

        case EnemyType.Troll:
            enemy = FactoryManager.enemyFactory.CreateCharacter <EnemyTroll>(mWeaponType, mPosition, mLv) as IEnemy;
            break;

        default:
            Debug.LogError("无法创建EnemyType:" + mEnemyType + "的敌人");
            break;
        }
        //角色被创建时会自动被加入到角色系统的敌人阵营,所以需要移除
        GameFacade.Instance.RemoveEnemy(enemy);
        SoldierCaptive captive = new SoldierCaptive(enemy);

        GameFacade.Instance.AddSoldier(captive);
    }
    public override void Execute()
    {
        Enemy enemy = FactoryManger.EnemyFactory.CreatCharacter(enemyType, weaponType, spawnPos) as Enemy; //创建俘兵

        GameFacade.Instance.CharacterSystem.RemoveEnemy(enemy);                                            //从敌人list中移除

        SoldierCaptive captive = new SoldierCaptive(enemy);                                                //创建适配器

        GameFacade.Instance.CharacterSystem.AddSoldier(captive);                                           //加入到战士List
    }
Beispiel #6
0
    public override void Execute()
    {
        IEnemy enemy = null;

        IWeapon weapon = null;

        switch (mWeaponType)
        {
        case WeaponType.Gun:
            weapon = new WeaponGun();
            break;

        case WeaponType.Rifle:
            weapon = new WeaponRifle();
            break;

        case WeaponType.Rocket:
            weapon = new WeaponRocket();
            break;

        default:
            Debug.LogError("无法创建武器类型:" + mWeaponType);
            break;
        }
        switch (mEnemyType)
        {
        case EnemyType.Elf:
            enemy = FactoryManager.GetEnemyFactory.CreatCharacter <EnemyElf>(mWeaponType, weapon, mSpawnPostion) as IEnemy;
            break;

        case EnemyType.Ogre:
            enemy = FactoryManager.GetEnemyFactory.CreatCharacter <EnemyOgre>(mWeaponType, weapon, mSpawnPostion) as IEnemy;
            break;

        case EnemyType.Troll:
            enemy = FactoryManager.GetEnemyFactory.CreatCharacter <EnemyTroll>(mWeaponType, weapon, mSpawnPostion) as IEnemy;
            break;

        default:
            Debug.LogError("无法创建敌人类型:" + mEnemyType);
            break;
        }

        GameFacade.Instance.RemoveEnemy(enemy);             //从敌人阵营里移除

        SoldierCaptive captive = new SoldierCaptive(enemy); //适配为俘兵

        GameFacade.Instance.AddSoldier(captive);            //加入战士阵营
    }
Beispiel #7
0
    public override void Execute()
    {
        // 先产生Enemy
        ICharacterFactory Factory  = PBDFactory.GetCharacterFactory();
        IEnemy            theEnemy = Factory.CreateEnemy(m_emEnemy, ENUM_Weapon.Gun, m_Position, Vector3.zero);

        // 再建立俘兵(轉接器)
        SoldierCaptive NewSoldier = new SoldierCaptive(theEnemy);

        // 移除Enemy
        m_PBDGame.RemoveEnemy(theEnemy);

        // 加入Soldier
        m_PBDGame.AddSoldier(NewSoldier);
    }
	public override void Execute()
	{
		// 先產生Enemy
		ICharacterFactory Factory = PBDFactory.GetCharacterFactory();
		IEnemy theEnemy = Factory.CreateEnemy ( m_emEnemy, ENUM_Weapon.Gun , m_Position ,Vector3.zero);

		// 再建立俘兵(轉接器)
		SoldierCaptive NewSoldier = new SoldierCaptive( theEnemy );
				
		// 移除Enemy
		m_PBDGame.RemoveEnemy( theEnemy );

		// 加入Soldier
		m_PBDGame.AddSoldier( NewSoldier );
	}		
    public ICharacter CreateCharacter(string characterName)
    {
        ISoldier soldier   = null;
        string   assetName = "";

        switch (characterName)
        {
        case "Captain":
            assetName = "Captain";
            break;

        case "Captive":
            assetName = "Captive";
            break;

        case "Rookie":
            assetName = "Rookie";
            break;

        case "Sergeant":
            assetName = "Sergeant";
            break;
        }

        IAssetsFactory resoureLoadFactory = new ResouresLoadFactory();
        GameObject     GO = resoureLoadFactory.LoadSoldier(assetName);

        switch (characterName)
        {
        case "Captain":
            soldier = new SoldierCaptain();
            break;

        case "Captive":
            soldier = new SoldierCaptive();
            break;

        case "Rookie":
            soldier = new SoldierRookie();
            break;

        case "Sergeant":
            soldier = new SoldierSergeant();
            break;
        }

        return(soldier);
    }
    // Update is called once per frame
    void UnitTest_CharacterCreate()
    {
        ICharacterFactory Factory = PBDFactory.GetCharacterFactory();

        // 建立Soldier
        ISoldier theSoldier = Factory.CreateSoldier(ENUM_Soldier.Rookie, ENUM_Weapon.Gun, 1, new Vector3(0, 0, 0));

        // 建立Enemy
        IEnemy theEnemy = Factory.CreateEnemy(ENUM_Enemy.Elf, ENUM_Weapon.Rocket, new Vector3(0, 0, 0), new Vector3(100, 0, 0));

        // 建立俘兵
        ISoldier theCaptive = new SoldierCaptive(theEnemy);

        // Soldier打Enemy
        //theSoldier.Attack( theEnemy );

        // Enemy打Soldier
        //theEnemy.Attack( theSoldier );
    }
	// Update is called once per frame
	void UnitTest_CharacterCreate() {
		
		ICharacterFactory Factory = PBDFactory.GetCharacterFactory();
		
		// 建立Soldier
		ISoldier theSoldier = Factory.CreateSoldier( ENUM_Soldier.Rookie, ENUM_Weapon.Gun, 1,new Vector3(0,0,0) );
				
		// 建立Enemy
		IEnemy theEnemy = Factory.CreateEnemy ( ENUM_Enemy.Elf, ENUM_Weapon.Rocket, new Vector3(0,0,0), new Vector3(100,0,0) );

		// 建立俘兵
		ISoldier theCaptive = new SoldierCaptive(theEnemy );
		
		// Soldier打Enemy
        //theSoldier.Attack( theEnemy );
		
		// Enemy打Soldier
		//theEnemy.Attack( theSoldier );
	}
    // Soldier能力
	void UnitTest_SoldierValue() 
	{

		ICharacterFactory Factory = PBDFactory.GetCharacterFactory();

        // 建立Soldier
		ISoldier theSoldier = Factory.CreateSoldier( ENUM_Soldier.Rookie, ENUM_Weapon.Gun, 1,new Vector3(0,0,0) );

		// 加上前輟能力
		IAttrFactory ValueFactory = PBDFactory.GetAttrFactory();
		SoldierAttr PreAttr = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, 11, theSoldier.GetSoldierValue() );
		theSoldier.SetCharacterAttr( PreAttr );

		// 加上後輟能力
		SoldierAttr SufValue = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Suffix, 21, theSoldier.GetSoldierValue() );
		theSoldier.SetCharacterAttr( SufValue );
				
		// 建立Enemy
		IEnemy theEnemy = Factory.CreateEnemy ( ENUM_Enemy.Elf, ENUM_Weapon.Rocket, new Vector3(0,0,0), new Vector3(100,0,0) );

		// 建立俘兵
		ISoldier theCaptive =new SoldierCaptive( theEnemy );

		// 加上前輟能力
		PreAttr = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, 11, theCaptive.GetSoldierValue() );
		theCaptive.SetCharacterAttr( PreAttr );

		// 加上後輟能力
		SufValue = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Suffix, 21, theCaptive.GetSoldierValue() );
		theCaptive.SetCharacterAttr( SufValue );
				
		// Soldier打Enemy
        //theSoldier.Attack( theEnemy );

        // Enemy打Soldier
		//theEnemy.Attack( theSoldier );

	}
    // Soldier能力
    void UnitTest_SoldierValue()
    {
        ICharacterFactory Factory = PBDFactory.GetCharacterFactory();

        // 建立Soldier
        ISoldier theSoldier = Factory.CreateSoldier(ENUM_Soldier.Rookie, ENUM_Weapon.Gun, 1, new Vector3(0, 0, 0));

        // 加上前輟能力
        IAttrFactory ValueFactory = PBDFactory.GetAttrFactory();
        SoldierAttr  PreAttr      = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, 11, theSoldier.GetSoldierValue());

        theSoldier.SetCharacterAttr(PreAttr);

        // 加上後輟能力
        SoldierAttr SufValue = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Suffix, 21, theSoldier.GetSoldierValue());

        theSoldier.SetCharacterAttr(SufValue);

        // 建立Enemy
        IEnemy theEnemy = Factory.CreateEnemy(ENUM_Enemy.Elf, ENUM_Weapon.Rocket, new Vector3(0, 0, 0), new Vector3(100, 0, 0));

        // 建立俘兵
        ISoldier theCaptive = new SoldierCaptive(theEnemy);

        // 加上前輟能力
        PreAttr = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Prefix, 11, theCaptive.GetSoldierValue());
        theCaptive.SetCharacterAttr(PreAttr);

        // 加上後輟能力
        SufValue = ValueFactory.GetEliteSoldierAttr(ENUM_AttrDecorator.Suffix, 21, theCaptive.GetSoldierValue());
        theCaptive.SetCharacterAttr(SufValue);

        // Soldier打Enemy
        //theSoldier.Attack( theEnemy );

        // Enemy打Soldier
        //theEnemy.Attack( theSoldier );
    }
	public override void VisitSoldierCaptive (SoldierCaptive Captive)
	{
		base.VisitSoldierCaptive(Captive);
		SoldierCaptiveCount++;
	}
 public virtual void VisitSoldierCaptive(SoldierCaptive Captive)
 {
     VisitSoldier(Captive);
 }
Beispiel #16
0
 public override void VisitSoldierCaptive(SoldierCaptive Captive)
 {
     base.VisitSoldierCaptive(Captive);
     SoldierCaptiveCount++;
 }
	public virtual void VisitSoldierCaptive(SoldierCaptive Captive)
	{
		VisitSoldier( Captive );
	}