Пример #1
0
 // 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);
     }
 }
Пример #2
0
 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);
         }
     }
 }
Пример #3
0
        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();
        }
Пример #6
0
 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;
         }
     }
 }
Пример #7
0
 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;
         }
     }
 }
Пример #8
0
 private void addProjectile(IRangeWeapon rangeWeapon)
 {
     projectilesBoundToCharacterType[rangeWeapon.Character.CharacterType].Add(pooledProjectileFactory.Create(rangeWeapon.Projectile));
 }
Пример #9
0
 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];
     }
 }
Пример #10
0
 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);
     }
 }
Пример #11
0
		public StormtrooperFighting(IRangeWeapon weapon)
		{
			this.weapon = weapon;
		}
 public void EquipRangeWeapon(IRangeWeapon rangeWeapon)
 {
     _rangeWeapon = rangeWeapon;
 }
Пример #13
0
 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;
 }
Пример #16
0
 public void Equip(IRangeWeapon rangeweapon)
 {
     bulletPool.ChangeBullet(rangeweapon);
 }