コード例 #1
0
        private static void RemoveJemFromWeapon(IWeapnRepository repository, string weaponName, int index)
        {
            IWeaponUpgrade weaponToDowngrade = FindWeaponInRepository(repository, weaponName);


            weaponToDowngrade.RemoveJem(index);
        }
コード例 #2
0
        private static void AddJemToWeapon
            (IWeapnRepository repository, string weaponName, int index, string jemType, string jemClarity)
        {
            IWeaponUpgrade weaponToUpgrade = FindWeaponInRepository(repository, weaponName);
            IJemFactory    jemFactory      = new JemFactory();

            weaponToUpgrade.AddJem(index, jemFactory.CreateJem(jemType, jemClarity));
        }
コード例 #3
0
        public void PrintWeapon(string name)
        {
            if (!this.weapons.ContainsKey(name))
            {
                throw new ArgumentException($"{name} do not exist in repository!");
            }

            IWeaponUpgrade weapon = (IWeaponUpgrade)this.weapons[name];

            Console.WriteLine($"{name}: {weapon.Print()}");
        }
コード例 #4
0
 public Hammer(IWeaponUpgrade weapon) : base(weapon)
 {
 }
コード例 #5
0
 public Knife(IWeaponUpgrade weapon)
     : base(weapon)
 {
 }
コード例 #6
0
 public WeaponDecorator(IWeaponUpgrade weapon)
 {
     this.weaponUpgrade = weapon;
 }
コード例 #7
0
        private static void PrintWeaponStatistics(IWeapnRepository repository, string weaponName)
        {
            IWeaponUpgrade weaponToPrint = FindWeaponInRepository(repository, weaponName);

            repository.PrintWeapon(weaponName);
        }
コード例 #8
0
 public override void acceptUpgrade(IWeaponUpgrade upgrade)
 {
     upgrade.Upgrade(this);
 }