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}'"); }
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(); }
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); } }
public virtual bool CanUseWeapon(IHeroWeapon weapon) { return(PermittedWeapons.Contains(weapon)); }