コード例 #1
0
    public static Weapon GetWeapon(string typeWeapon, string name, LevelOfRarity rarity)
    {
        Assembly currentAssembly = Assembly.GetExecutingAssembly();
        var      currentType     = currentAssembly.GetTypes().SingleOrDefault(t => t.Name == typeWeapon);

        return((Weapon)Activator.CreateInstance(currentType, new object[] { name, rarity }));
    }
コード例 #2
0
 protected Weapon(string name, int minDamage, int maxDamage, int numberOfSockets, LevelOfRarity levelOfRarity)
 {
     this.name          = name;
     this.minDamage     = minDamage;
     this.maxDamage     = maxDamage;
     this.sockets       = new IGem[numberOfSockets];
     this.levelOfRarity = levelOfRarity;
 }
コード例 #3
0
ファイル: Weapon.cs プロジェクト: MiBuena/SoftUniCourses
 public Weapon(string name, int minDamage, int maxDamage, int sockets, LevelOfRarity levelOfRarity)
 {
     this.Name           = name;
     this.MinDamage      = minDamage;
     this.MaxDamage      = maxDamage;
     this.Sockets        = sockets;
     this.LevelOfRarity  = levelOfRarity;
     this.GemsCollection = new Gem[sockets];
 }
コード例 #4
0
 protected Weapon(string name, int minDamage, int maxDamage, int numberOfSocets, LevelOfRarity rarity)
 {
     this.Rarity         = rarity;
     this.Name           = name;
     this.MinDamage      = minDamage * (int)this.Rarity;
     this.MaxDamage      = maxDamage * (int)this.Rarity;
     this.NumberOfSocets = numberOfSocets;
     this.Gems           = new Dictionary <int, Gem>();
 }
コード例 #5
0
 protected Weapon(string name, LevelOfRarity levelOfRarity, int minDamage, int maxDamage, int numberOfSockets)
 {
     Name           = name;
     LevelOfRarity  = levelOfRarity;
     this.MinDamage = minDamage;
     this.MaxDamage = maxDamage;
     this.IncreaseDamage();
     this.NumberOfSockets = numberOfSockets;
     this.gems            = new Gem[NumberOfSockets];
 }
コード例 #6
0
        public Weapon CreateWeapon(string[] data)
        {
            string[]      weaponInfo            = data[1].Split();
            string        levelOfRarityAsString = weaponInfo[0];
            LevelOfRarity levelOfRarity         = Enum.Parse <LevelOfRarity>(levelOfRarityAsString);
            string        weaponType            = weaponInfo[1];
            string        name = data[2];

            Type type = Assembly.GetExecutingAssembly().GetTypes()
                        .FirstOrDefault(x => x.Name == weaponType);
            Weapon weapon = (Weapon)Activator.CreateInstance(type, name, levelOfRarity);

            return(weapon);
        }
コード例 #7
0
        public void Execute(string[] parameters, IList <Weapon> weaponsCollection)
        {
            string[] weaponType = parameters[1].Split(' ');

            string typeName = weaponType[1];

            string weaponName = parameters[2];

            var assemblyTypes = Assembly.GetExecutingAssembly().GetTypes();

            var sbType = assemblyTypes.FirstOrDefault(x => x.Name == typeName);

            LevelOfRarity levelOfRarity = (LevelOfRarity)Enum.Parse(typeof(LevelOfRarity), weaponType[0]);

            Weapon weapon = (Weapon)Activator.CreateInstance(sbType, new object[] { weaponName, levelOfRarity });

            weaponsCollection.Add(weapon);
        }
コード例 #8
0
        protected Weapon(string name, double minDamage, double maxDamage, int numberOfSockets, LevelOfRarity levelOfRarity)
        {
            this.Name               = name;
            this.MinDmg             = minDamage * (int)levelOfRarity;
            this.MaxDmg             = maxDamage * (int)levelOfRarity;
            this.MaxNumberOfSockets = numberOfSockets;
            this.RarityLevel        = levelOfRarity;

            this.gems = new IGem[numberOfSockets];
        }
コード例 #9
0
ファイル: Sword.cs プロジェクト: pirocorp/CSharp-OOP-Advanced
 public Sword(string name, LevelOfRarity levelOfRarity = LevelOfRarity.Common)
     : base(name, MIN_DAMAGE, MAX_DAMAGE, NUMBER_OF_SOCKETS, levelOfRarity)
 {
 }
コード例 #10
0
 public Sword(string name, LevelOfRarity rarity)
     : base(name, 4, 6, 3, rarity)
 {
 }
コード例 #11
0
 public Axe(string name, LevelOfRarity levelOfRarity) : base(name, 5, 10, 4, levelOfRarity)
 {
 }
コード例 #12
0
 public Knife(string name, LevelOfRarity levelOfRarity) : base(name, 3, 4, 2, levelOfRarity)
 {
 }
コード例 #13
0
ファイル: Knife.cs プロジェクト: MiBuena/SoftUniCourses
 public Knife(string name, LevelOfRarity levelOfRarity) : base(name, MinimumDamage * (int)levelOfRarity, MaximumDamage * (int)levelOfRarity, NumberOfSockets, levelOfRarity)
 {
 }
コード例 #14
0
 public Sword(string name, LevelOfRarity levelOfRarity)
     : base(name, levelOfRarity, minDamage, maxDamage, numberOfSockets)
 {
 }
コード例 #15
0
ファイル: StartUp.cs プロジェクト: mariko33/OOP-Advanced
    static void Main()
    {
        List <Weapon> weapons             = new List <Weapon>();
        var           customInfoAttribute = typeof(Weapon).GetCustomAttribute <CustomInfoAttribute>();
        string        input;

        while ((input = Console.ReadLine()) != "END")
        {
            var    args    = input.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string command = args[0];

            switch (command)
            {
            case "Create":
            {
                var           type       = args[1].Split(" ");
                string        rarity     = type[0];
                string        typeWeapon = type[1];
                string        name       = args[2];
                LevelOfRarity rarityEnum = (LevelOfRarity)Enum.Parse(typeof(LevelOfRarity), rarity);
                weapons.Add(WeaponFactories.GetWeapon(typeWeapon, name, rarityEnum));
                break;
            }

            case "Add":
            {
                string weaponName    = args[1];
                int    soketIndex    = int.Parse(args[2]);
                var    gemTypeArgs   = args[3].Split(" ");
                string clarityString = gemTypeArgs[0];
                string type          = gemTypeArgs[1];

                LevelOfClarity clarity = (LevelOfClarity)Enum.Parse(typeof(LevelOfClarity), clarityString);

                Weapon currWeapon = weapons.FirstOrDefault(w => w.Name == weaponName);
                //check

                Gem gem = GemFactory.GetGem(type, clarity);

                currWeapon.AddGem(gem, soketIndex);
                break;
            }

            case "Print":
            {
                string name   = args[1];
                Weapon weapon = weapons.FirstOrDefault(w => w.Name == name);
                Console.WriteLine(weapon);
                break;
            }

            case "Remove":
            {
                string name   = args[1];
                int    index  = int.Parse(args[2]);
                Weapon weapon = weapons.FirstOrDefault(w => w.Name == name);
                if (weapon != null)
                {
                    weapon.RemoveGem(index);
                }
                break;
            }

            case "Author": Console.WriteLine($"Author: {customInfoAttribute.Author}");
                break;

            case "Revision": Console.WriteLine($"Revision: {customInfoAttribute.Revision}");
                break;

            case "Description": Console.WriteLine($"Class description: {customInfoAttribute.Description}");
                break;

            case "Reviewers": Console.WriteLine($"Reviewers: {string.Join(", ",customInfoAttribute.Reviewers)}");
                break;
            }
        }
    }