Ejemplo n.º 1
0
 public Gem(int strengthBonus, int agilityBonus, int vitalityBonus, LevelOfClarity levelOfClarity)
 {
     this.StrengthBonus  = strengthBonus;
     this.AgilityBonus   = agilityBonus;
     this.VitalityBonus  = vitalityBonus;
     this.LevelOfClarity = levelOfClarity;
 }
Ejemplo n.º 2
0
 protected Gem(int strength, int agility, int vitality, LevelOfClarity clarity)
 {
     this.Clarity  = clarity;
     this.Strength = strength + (int)this.Clarity;
     this.Agility  = agility + (int)this.Clarity;
     this.Vitality = vitality + (int)this.Clarity;
 }
Ejemplo n.º 3
0
    public static Gem GetGem(string type, LevelOfClarity clarity)
    {
        Assembly currentAssembly = Assembly.GetExecutingAssembly();

        var currentType = currentAssembly.GetTypes().FirstOrDefault(g => g.Name == type);

        return((Gem)Activator.CreateInstance(currentType, clarity));
    }
Ejemplo n.º 4
0
        public void Execute(string[] parameters, IList <Weapon> weaponsCollection)
        {
            string name = parameters[1];

            int index = int.Parse(parameters[2]);

            string [] gem = parameters[3].Split(' ');

            string gemType = gem[0];

            string gemName = gem[1];

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

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

            LevelOfClarity levelOfClarity = (LevelOfClarity)Enum.Parse(typeof(LevelOfClarity), gemType);

            Gem gemToAdd = (Gem)Activator.CreateInstance(sbType, new object[] { levelOfClarity });

            Weapon weapon = weaponsCollection.FirstOrDefault(x => x.Name == name);

            weapon.AddGem(gemToAdd, index);
        }
Ejemplo n.º 5
0
 public Amethyst(LevelOfClarity levelOfClarity) : base(StrengthConstant + (int)levelOfClarity, AgilityConstant + (int)levelOfClarity, VitalityConstant + (int)levelOfClarity, levelOfClarity)
 {
 }
Ejemplo n.º 6
0
 public Emerald(LevelOfClarity levelOfClarity) : base(new Stats(1, 4, 9), levelOfClarity)
 {
 }
Ejemplo n.º 7
0
 public Ruby(LevelOfClarity levelOfClarity) : base(new Stats(7, 2, 5), levelOfClarity)
 {
 }
Ejemplo n.º 8
0
 public Amethyst(LevelOfClarity clarity)
     : base(2, 8, 4, clarity)
 {
 }
Ejemplo n.º 9
0
 public Ruby(LevelOfClarity clarity)
     : base(7, 2, 5, clarity)
 {
 }
Ejemplo n.º 10
0
 public Amethyst(LevelOfClarity levelOfClarity) : base(new Stats(2, 8, 4), levelOfClarity)
 {
 }
Ejemplo n.º 11
0
 public Emerald(LevelOfClarity clarity)
     : base(1, 4, 9, clarity)
 {
 }
Ejemplo n.º 12
0
    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;
            }
        }
    }
Ejemplo n.º 13
0
 public Emerald(LevelOfClarity levelOfClarity) : base(StrengthConstant + (int)levelOfClarity, AgilityConstant + (int)levelOfClarity, VitalityConstant + (int)levelOfClarity, levelOfClarity)
 {
 }
Ejemplo n.º 14
0
 protected Gem(IStats stats, LevelOfClarity levelOfClarity)
 {
     this.Stats = stats;
     Stats.GroupIncrease((int)levelOfClarity);
 }