// 建立Soldier(Generice版)
    public ISoldier CreateSoldier <T>(ENUM_Weapon emWeapon, int Lv, Vector3 SpawnPosition) where T : ISoldier, new()
    {
        // 产生Soldier的参数
        SoldierBuildParam SoldierParam = new SoldierBuildParam();

        // 产生对应的T类别
        SoldierParam.NewCharacter = new T();
        if (SoldierParam.NewCharacter == null)
        {
            return(null);
        }

        // 设定共用参数
        SoldierParam.emWeapon      = emWeapon;
        SoldierParam.SpawnPosition = SpawnPosition;
        SoldierParam.Lv            = Lv;

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

        theSoldierBuilder.SetBuildParam(SoldierParam);

        // 产生
        m_BuilderDirector.Construct(theSoldierBuilder);
        return(SoldierParam.NewCharacter  as ISoldier);
    }
Esempio n. 2
0
    /// <summary>
    /// 创建角色
    /// </summary>
    /// <param name="pos"></param>
    /// <returns></returns>
    public override ISolider CreatSolider(Vector3 pos)
    {
        if (PBDG_GameMain.Instance.m_player.GetMoney() < 100)
        {
            return(null);
        }
        else
        {
            PBDG_GameMain.Instance.m_player.SetMoeny(100);
        }


        SoldierBuildParam soldierBuildParam = new SoldierBuildParam();

        soldierBuildParam.NewBuding = new Solider();

        soldierBuildParam.AssetName = "Rookie";
        soldierBuildParam.Position  = pos;
        soldierBuildParam.AttrID    = 1;

        SoldierBuilder soldierBuilder = new SoldierBuilder();

        soldierBuilder.SetBuildParam(soldierBuildParam);


        m_builderSystem.Construct(soldierBuilder);

        return(soldierBuildParam.NewBuding as ISolider);
    }
    // 建立Soldier
    public override ISoldier CreateSoldier(ENUM_Soldier emSoldier, ENUM_Weapon emWeapon, int Lv, Vector3 SpawnPosition)
    {
        // 產生Soldier的參數
        SoldierBuildParam SoldierParam = new SoldierBuildParam();

        // 產生對應的Character
        switch (emSoldier)
        {
        case ENUM_Soldier.Rookie:
            SoldierParam.NewCharacter = new SoldierRookie();
            break;

        case ENUM_Soldier.Sergeant:
            SoldierParam.NewCharacter = new SoldierSergeant();
            break;

        case ENUM_Soldier.Captain:
            SoldierParam.NewCharacter = new SoldierCaptain();
            break;

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

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

        // 設定共用參數
        SoldierParam.emWeapon      = emWeapon;
        SoldierParam.SpawnPosition = SpawnPosition;
        SoldierParam.Lv            = Lv;

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

        theSoldierBuilder.SetBuildParam(SoldierParam);

        // 產生
        m_BuilderDirector.Construct(theSoldierBuilder);
        return(SoldierParam.NewCharacter  as ISoldier);
    }
Esempio n. 4
0
        public override ISoldier CreateSoldier(ENUM_Soldier enumSoldier, ENUM_Weapon enumWeapon,
                                               int Level, Vector3 SpawnPosition, Vector3 AttackPosition)
        {
            // 产生Soldier的参数
            SoldierBuildParam SoldierParam = new SoldierBuildParam();

            switch (enumSoldier)
            {
            case ENUM_Soldier.Rookie:
                SoldierParam.NewCharacter = new SoldierRookie();
                break;

            case ENUM_Soldier.Sergeant:
                SoldierParam.NewCharacter = new SoldierSergeant();
                break;

            case ENUM_Soldier.Captain:
                SoldierParam.NewCharacter = new SoldierCaptain();
                break;

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

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

            // 设置共享参数
            SoldierParam.emWeapon      = enumWeapon;
            SoldierParam.SpawnPosition = SpawnPosition;
            SoldierParam.Lv            = Level;

            // 产生对应的Builder及设置参数
            SoldierBuilder theSoldierBuilder = new SoldierBuilder();

            theSoldierBuilder.SetBuildParam(SoldierParam);

            // 产生
            m_BuilderDirector.Construct(theSoldierBuilder);
            return(SoldierParam.NewCharacter as ISoldier);
        }
Esempio n. 5
0
    // 建立Soldier
    public override Soldier CreateSoldier(CardData cardData, Vector3 SpawnPosition)
    {
        // 产生Soldier的参数
        SoldierBuildParam SoldierParam = new SoldierBuildParam();

        // 设定参数
        SoldierParam.NewCharacter  = new Soldier();
        SoldierParam.SpawnPosition = SpawnPosition;
        SoldierParam.cardData      = cardData;

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

        theSoldierBuilder.SetBuildParam(SoldierParam);

        // 参数
        m_BuilderDirector.Construct(theSoldierBuilder);
        return(SoldierParam.NewCharacter);
    }
Esempio n. 6
0
    public override ISoldier CreateSoldier(Player player, Vector3 SpawnPosition)
    {
        SoldierBuildParam SoldierParam = new SoldierBuildParam();

        switch (player.roleType)
        {
        case ENUM_Role.鬼剑士:
            SoldierParam.NewCharacter = new SoldierGJS();
            break;

        case ENUM_Role.黑暗武士:
            SoldierParam.NewCharacter = new SoldierHAWS();
            break;

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

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


        SoldierParam.emWeapon       = player.roleWeapon;
        SoldierParam.SpawnPosition  = SpawnPosition;
        SoldierParam.Lv             = player.level;
        SoldierParam.AssetName      = player.model;
        SoldierParam.IconSpriteName = player.icon;

        SoldierBuilder theSoldierBuilder = new SoldierBuilder();

        theSoldierBuilder.SetBuildParam(SoldierParam);


        m_BuilderDirector.Construct(theSoldierBuilder);

        return(SoldierParam.NewCharacter as ISoldier);
    }
	// 建立Soldier
	public override ISoldier CreateSoldier( ENUM_Soldier emSoldier, ENUM_Weapon emWeapon, int Lv, Vector3 SpawnPosition)
	{
		// 產生Soldier的參數
		SoldierBuildParam SoldierParam = new SoldierBuildParam();

		// 產生對應的Character
		switch( emSoldier)
		{
		case ENUM_Soldier.Rookie:
			SoldierParam.NewCharacter = new SoldierRookie();
			break;
		case ENUM_Soldier.Sergeant:
			SoldierParam.NewCharacter = new SoldierSergeant();
			break;
		case ENUM_Soldier.Captain:
			SoldierParam.NewCharacter = new SoldierCaptain();
			break;
		default:
            Debug.LogWarning("CreateSoldier:無法建立[" + emSoldier + "]");
			return null;
		}

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

		// 設定共用參數
		SoldierParam.emWeapon = emWeapon;
		SoldierParam.SpawnPosition = SpawnPosition;
		SoldierParam.Lv		  = Lv;

		//  產生對應的Builder及設定參數
		SoldierBuilder theSoldierBuilder = new SoldierBuilder();
		theSoldierBuilder.SetBuildParam( SoldierParam ); 
		
		// 產生
		m_BuilderDirector.Construct( theSoldierBuilder );
		return SoldierParam.NewCharacter  as ISoldier;
	}
Esempio n. 8
0
    public override ISoldier createSoldier(ENUM_Soldier emSoldier, ENUM_Weapon emWeapon, Vector3 spawnPosition)
    {
        SoldierBuildParam buildParam = new SoldierBuildParam();

        switch (emSoldier)
        {
        case ENUM_Soldier.Assault:
            buildParam.character = new SoldierAssault();
            break;

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

        SoldierBuilder soldierBuilder = new SoldierBuilder();

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

        return(buildParam.character as ISoldier);
    }
Esempio n. 9
0
 public override void SetBuildParam(ICharacterBuildParam theParam)
 {
     m_BuildParam = theParam as SoldierBuildParam;
 }
Esempio n. 10
0
 public override void setBuildParam(ICharacterBuildParam characterBuildParam)
 {
     m_soldierBuildParam = characterBuildParam as SoldierBuildParam;
 }
Esempio n. 11
0
 public override void SetBuildParam(ICharacterBuildParam theParam)
 {
     m_BuildParam = theParam as SoldierBuildParam;
     //monster = Deserialization.Instance.MonsterDatas[m_BuildParam.cardData.objId];
 }
Esempio n. 12
0
 public override void SetBuildParam(IBuildingsParam buildingsParam)
 {
     m_buildParam = buildingsParam as  SoldierBuildParam;
 }
	public override void SetBuildParam( ICharacterBuildParam theParam )
	{
		m_BuildParam = theParam as SoldierBuildParam;	
	}