예제 #1
0
 public CreateWeaponCommand(
     IDatabase<Weapon> repository,
     WeaponFactory weaponFactory,
     GemFactory gemFactory,
     string weaponName,
     WeaponRarities weaponRarity,
     WeaponTypes weaponType)
     : base(repository, weaponFactory, gemFactory, weaponName)
 {
     this.weaponRarity = weaponRarity;
     this.weaponType = weaponType;
 }
예제 #2
0
 public AxeWeapon(
     WeaponRarities rarity,
     WeaponTypes type,
     string name)
     : base(
         rarity,
         type,
         name,
         PureMinDamage,
         PureMaxDamage,
         NumberOfSockets)
 {
 }
예제 #3
0
        protected Weapon(
            WeaponRarities rarity,
            WeaponTypes type,
            string name,
            int minDamage,
            int maxDamage,
            int numberOfSockets)
        {
            this.rarity = rarity;
            this.type = type;
            this.Name = name;

            this.minDamage = minDamage * (int)rarity;
            this.maxDamage = maxDamage * (int)rarity;

            this.sockets = new Gem[numberOfSockets];
        }
예제 #4
0
        public Weapon CreateWeapon(WeaponRarities weaponRarity, WeaponTypes weaponType, string weaponName)
        {
            Weapon weapon = null;

            switch (weaponType)
            {
                case WeaponTypes.Axe:
                    weapon = new AxeWeapon(weaponRarity, weaponType, weaponName);
                    break;
                case WeaponTypes.Knife:
                    weapon = new KnifeWeapon(weaponRarity, weaponType, weaponName);
                    break;
                case WeaponTypes.Sword:
                    weapon = new SwordWeapon(weaponRarity, weaponType, weaponName);
                    break;
            }

            return weapon;
        }