예제 #1
0
        public void SimulateDropAndPickupByOtherHero()
        {
            IHero swordsmanOne = HeroFactory.CreateSwordsman();
            IHero swordsmanTwo = HeroFactory.CreateSwordsman();

            IHeroWeapon w = swordsmanOne.DropWeapon();
            IHeroWeapon _ = swordsmanTwo.DropWeapon();


            swordsmanTwo.PickUpWeapon(w);

            Console.WriteLine($"'{swordsmanTwo.Name}' je pokupio oružje '{w.Name}'");
        }
예제 #2
0
        public virtual void PickUpWeapon(IHeroWeapon weapon)
        {
            if (!CanUseWeapon(weapon))
            {
                throw new IllegalWeaponException($"'{Name}' ne može koristiti oružje '{weapon.Name}'");
            }

            if (Weapons.Length == MaxWeaponCount)
            {
                throw new BackpackFullException("Ranac je pun");
            }

            Weapons = Weapons.Union(new[] { weapon }).ToArray();
        }
예제 #3
0
        public void SimulateWeaponDropAndPickup()
        {
            IHero wizard    = HeroFactory.CreateWizard();
            IHero swordsman = HeroFactory.CreateSwordsman();

            IHeroWeapon magic = wizard.DropWeapon();
            IHeroWeapon _     = wizard.DropWeapon();

            swordsman.PickUpWeapon(new Spear(15));

            try
            {
                swordsman.PickUpWeapon(magic);
            }
            catch (BackpackFullException e)
            {
                Console.WriteLine(e.Message);
            }
            catch (IllegalWeaponException e)
            {
                Console.WriteLine(e.Message);
            }
        }
예제 #4
0
 public virtual bool CanUseWeapon(IHeroWeapon weapon)
 {
     return(PermittedWeapons.Contains(weapon));
 }