private static void RemoveJemFromWeapon(IWeapnRepository repository, string weaponName, int index) { IWeaponUpgrade weaponToDowngrade = FindWeaponInRepository(repository, weaponName); weaponToDowngrade.RemoveJem(index); }
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)); }
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()}"); }
public Hammer(IWeaponUpgrade weapon) : base(weapon) { }
public Knife(IWeaponUpgrade weapon) : base(weapon) { }
public WeaponDecorator(IWeaponUpgrade weapon) { this.weaponUpgrade = weapon; }
private static void PrintWeaponStatistics(IWeapnRepository repository, string weaponName) { IWeaponUpgrade weaponToPrint = FindWeaponInRepository(repository, weaponName); repository.PrintWeapon(weaponName); }
public override void acceptUpgrade(IWeaponUpgrade upgrade) { upgrade.Upgrade(this); }