/// <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); }
public T CreateCharacter <T>(WeaponType _weaponType, Vector3 _pos, int _lv = 1) where T : AbsCharacter, new() { AbsCharacter character = new T(); AbsCharacterBuilder builder = new SoldierBuilder(character, typeof(T), _weaponType, _pos, _lv); return(CharacterBuilderDirector.Construct(builder) as T); }
// 建立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); }
public ICharacter CreateCharacter <T>(WeaponType weaponType, Vector3 spawnPosition, int lv = 1) where T : ICharacter, new() { ICharacter character = new T(); //string name = ""; //int maxHP = 0; //float moveSpeed = 0; //string iconSprite = ""; //string prefabName = ""; //System.Type t = typeof(T); //if (t == typeof(SoldierCaptain)) //{ // name = "上尉军官"; // maxHP = 100; // moveSpeed = 3; // iconSprite = "CaptainIcon"; // prefabName = "Soldier1"; //} //else if (t == typeof(SoldierSergeant)) //{ // name = "中士士兵"; // maxHP = 90; // moveSpeed = 3; // iconSprite = "SergeantIcon"; // prefabName = "Soldier3"; //} //else if (t == typeof(SoldierRookie)) //{ // name = "新手士兵"; // maxHP = 80; // moveSpeed = 2.5f; // iconSprite = "RookieIcon"; // prefabName = "Soldier2"; //} //else //{ // Debug.LogError("类型" + t + "不属于ISoldier,无法创建战士"); // return null; //} //ICharacterAttr attr = new ICharacterAttr(new SoldierAtrrStrategy(), lv, name, maxHP, moveSpeed, iconSprite, prefabName); //character.attr = attr; ////创建角色的游戏物体 ////1.加载 2.实例化 //GameObject characterGO = FactoryManager.assetFactory.LoadSoldier(prefabName); //characterGO.transform.position = spawnPosition; //character.gameobject = characterGO; ////添加武器 //IWeapon weapon = FactoryManager.weaponFactory.CreateWeapon(weaponType); //character.weapon = weapon; ICharacterBuilder builder = new SoldierBuilder(character, typeof(T), weaponType, spawnPosition, lv); character = CharacterBuilderDirector.Construct(builder); return(character); }
public ICharacter CreateCharacter <T>(WeaponType weaponType, Vector3 pos, int lv = 1) where T : ICharacter, new() { ICharacter character = new T(); ICharacterBuilder builder = new SoldierBuilder(character, typeof(T), weaponType, pos, lv); return(CharacterBuilderDirector.Construct(builder)); }
public ICharacter CreateCharacter <T>(WeaponType weaponType, Vector3 spawnPosition, int lv = 1) where T : ICharacter, new() { ICharacter soldier = new T(); ICharacterBuilder builder = new SoldierBuilder(soldier, typeof(T), weaponType, spawnPosition, lv); return(CharacterBuilderDirector.Constructer(builder)); }
public ICharacter CreatCharacter <T>(Vector3 spawnPosition, Transform startParent, RoadType roadType, CampType campType, Transform[] towers, int lv = 1) where T : ICharacter, new() { ICharacter soldier = new T(); // 创建角色 添加状态机 CharacterBuilderDirector director = new CharacterBuilderDirector(); // 创建指导者 SoldierBuilder builder = new SoldierBuilder(startParent, soldier, typeof(T), spawnPosition, roadType, campType, towers); // 创建Soldier建造者 return(director.Construct(builder)); // 建造Soldier并返回 }
public Character CreatCharacter(Type characterType, Type weaponType, Vector3 spawnPos, int lv = 1) { SoldierBuilder builder = new SoldierBuilder(characterType, weaponType, spawnPos, lv); Character soldier = CharacterDirector.Construct(builder); GameFacade.Instance.CharacterSystem.AddSoldier(soldier as Soldier);//添加到角色系统 return(soldier); }
public ICharacter CreateCharacter <T>(WeaponType weaponType, Vector3 spawnPosition, int level = 1) where T : ICharacter, new() { ICharacter character = new T(); ICharacterBuilder builder = new SoldierBuilder(character, typeof(T), weaponType, spawnPosition, level); character = CharacterBuildDirector.Construct(builder); return(character); }
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); }
// 建立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); }
// 建立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); }
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; }
/// <summary> /// Create a bunch of recruits! /// </summary> /// <param name="writer"></param> /// <returns></returns> private static List <ISoldier> CreateRecruits(IWriter writer) { var soldierBuilder = new SoldierBuilder(writer); var recruits = new List <ISoldier>(); while (true) { var soldier = soldierBuilder.CreateSoldier(); writer.WriteMessage(soldier.DisplayNewSoldier()); recruits.Add(soldier); writer.WriteMessage("\nWould you like to create more soliders?" + "\nPress Y to create more, or N to stop add created soldiers to the army."); if (Console.ReadKey().Key == ConsoleKey.N) { break; } } writer.ClearMessage(); return(recruits); }
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); }
private void InitFireTeam() { FireTeamCharacters = new FireTeamSquad (); CharacterDirector = new CharacterManager (); foreach (NewSoldierData Data in FireTeamData) { SoldierBuilder Builder = new SoldierBuilder (Data); FireTeamSoldier CreatedCharacter = CharacterDirector.CreateSoldier (Builder); CreatedCharacter.OnCharacterReachDestinationEvent += OnCharacterReachDestination; CreatedCharacter.OnClickAndTapOnCharacterEvent += OnFireTeamCharacterTapAndClick; FireTeamCharacters.AddFireTeamSoldier(CreatedCharacter); } List<Vector3> StartLocations = LevelMapDirector.GetSoldiersStartingLocations (); FireTeamCharacters.PlaceSquadOnMap (StartLocations); List<FireTeamSoldier> Soldiers = FireTeamCharacters.GetSoldiersList(); foreach(FireTeamSoldier Soldier in Soldiers) { LevelMapDirector.SetCellStatus(Soldier.GetPosition(), LevelMap.OCCUPY_CELL_VALUE); } Logic.SetFireTeamSquad (FireTeamCharacters); }
public FireTeamSoldier CreateSoldier(SoldierBuilder Builder) { Builder.BuildModel (ModelDirector); return Builder.GetCharacter(); }
public void CreateSoldier(SoldierBuilder soldierBuilder) { soldierBuilder.Gun(); soldierBuilder.Transport(); soldierBuilder.AtkPoint(); }