// TODO There might be bugs here public void ChangeBullet(IRangeWeapon rangeWeapon) { changeProjectileType(rangeWeapon); for (int i = 0; i < projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Count; i++) { if (!projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Active) projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i] = pooledProjectileFactory.Create(rangeWeapon.Projectile); } }
public void AddCharacterKey(IRangeWeapon rangeWeapon) { if (!projectilesBoundToCharacterType.ContainsKey(rangeWeapon.Character.CharacterType)) { List<IPooledProjectile> temp = new List<IPooledProjectile>(); temp.Add(new PooledProjectile(rangeWeapon.Projectile)); projectilesBoundToCharacterType.Add(rangeWeapon.Character.CharacterType, temp); for (int i = 0; i < 100; i++) { addProjectile(rangeWeapon); } } }
public IPooledProjectile GetPooledProjectile(IRangeWeapon rangeWeapon) { for (int i = 0; i < projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Count; i++) { if (!projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Active && !projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Projectile.Equals(rangeWeapon.Projectile)) { changeProjectileType(rangeWeapon); projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i] = pooledProjectileFactory.Create(rangeWeapon.Projectile); } } addNewProjectileToList(rangeWeapon, ref currentProjectile); iterateThroughCreatedProjectiles(rangeWeapon, ref currentProjectile); return currentProjectile; }
static void Main(string[] args) { IMeleeWeapon MeleeWeapon = Generator.MeleeWeapon(); IRangeWeapon RangeWeapon = Generator.RangeWeapon(); // Constructor DI Hunter hunter = Generator.MakeHunter(MeleeWeapon, RangeWeapon); GearUp gearUp = Generator.ReadyGearUp(); gearUp.HuntGearUp(); IBehemoth behemoth = Generator.MakeBehemoth(gearUp.behemothType); IHunt Hunt = Generator.Hunt(gearUp.meleeWeapon, gearUp.rangeWeapon); Hunt.Attack(hunter, behemoth); Hunt.HuntResult(hunter, behemoth); Console.ReadKey(); }
static void Main() { IMeleeWeapon MeleeWeapon = Generator.MeleeWeapon(); IRangeWeapon RangeWeapon = Generator.RangeWeapon(); Hunter hunter = Generator.MakeHunter(); GearUp gearUp = Generator.ReadyGearUp(); gearUp.HuntGearUp(); // Method DI hunter.EquipMeleeWeapon(new MeleeWeapon()); hunter.EquipRangeWeapon(new RangeWeapon()); IBehemoth behemoth = Generator.MakeBehemoth(gearUp.behemothType); IHunt Hunt = Generator.Hunt(gearUp.meeleWeapon, gearUp.rangeWeapon); Hunt.Attack(hunter, behemoth); Hunt.HuntResult(hunter, behemoth); Console.ReadKey(); }
private void iterateThroughCreatedProjectiles(IRangeWeapon rangeWeapon, ref IPooledProjectile currentProjectile) { for (int i = 0; i < projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Count; i++) { if (!projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Active) { projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Active = true; currentProjectile = projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i]; break; } } }
private void changeProjectileType(IRangeWeapon rangeWeapon) { if (!projectilesBoundToCharacterType.ContainsKey(rangeWeapon.Character.CharacterType)) AddCharacterKey(rangeWeapon); for (int i = 0; i < projectilesBoundToCharacterType.Count; i++) { if (projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Active == false) { projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][i].Projectile = rangeWeapon.Projectile; } } }
private void addProjectile(IRangeWeapon rangeWeapon) { projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Add(pooledProjectileFactory.Create(rangeWeapon.Projectile)); }
private void addNewProjectileToList(IRangeWeapon rangeWeapon, ref IPooledProjectile currentProjectile) { if (projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Count - 1].Active) { lastElement = projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Count - 1; addProjectile(rangeWeapon); projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][lastElement].Active = true; currentProjectile = projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType][lastElement]; } }
public void Initialize(IRangeWeapon rangeWeapon, Vector3 startPosition, int count) { List<IPooledProjectile> temp = new List<IPooledProjectile>(); temp.Add(new PooledProjectile(rangeWeapon.Projectile)); if(!projectilesBoundToCharacterType.ContainsKey(rangeWeapon.Character.CharacterType)) projectilesBoundToCharacterType.Add(rangeWeapon.Character.CharacterType, temp); changeProjectileType(rangeWeapon); for (int i = 0; i < count; i++) { addProjectile(rangeWeapon); } }
public StormtrooperFighting(IRangeWeapon weapon) { this.weapon = weapon; }
public void EquipRangeWeapon(IRangeWeapon rangeWeapon) { _rangeWeapon = rangeWeapon; }
public static int ReadWeaponRange(this IRangeWeapon ic, List <ClilocItemRec> properties) { return(!ClilocHelper.Contains(properties, 1061169) ? 1 : ClilocHelper.GetParams(properties, 1061169)[0]); }
public static Hunter MakeHunter(IMeleeWeapon meleeWeapon, IRangeWeapon rangeWeapon) { return(new Hunter(100, meleeWeapon, rangeWeapon)); }
// Constructor DI public Hunter(int health, IMeleeWeapon meleeWeapon, IRangeWeapon rangeWeapon) { this.health = health; _meleeWeapon = meleeWeapon; _rangeWeapon = rangeWeapon; }
public void Equip(IRangeWeapon rangeweapon) { bulletPool.ChangeBullet(rangeweapon); }