예제 #1
0
        public IGem CreateGem(string type, LevelClarity clarity)
        {
            Assembly assembly = Assembly
                                .GetExecutingAssembly();

            Type model = assembly
                         .GetTypes()
                         .FirstOrDefault(c => c.Name == type);

            if (model == null)
            {
                throw new ArgumentException(
                          "Invalid type!");
            }

            if (!typeof(IGem).IsAssignableFrom(model))
            {
                throw new ArgumentException(
                          model + " is not Weapon type!");
            }

            IGem gem = (IGem)Activator
                       .CreateInstance(
                model,
                new object[]
            {
                clarity
            });

            return(gem);
        }
예제 #2
0
파일: Gem.cs 프로젝트: vesy53/SoftUni
 protected Gem(
     int strength,
     int agility,
     int vitality,
     LevelClarity levelClarity)
 {
     this.LevelClarity = levelClarity;
     this.Strength     = strength;
     this.Agility      = agility;
     this.Vitality     = vitality;
 }
예제 #3
0
파일: Add.cs 프로젝트: vesy53/SoftUni
        public override void Execute()
        {
            string name  = this.Data[0];
            int    index = int.Parse(this.Data[1]);

            string[] split = this.Data[2]
                             .Split(" ",
                                    StringSplitOptions
                                    .RemoveEmptyEntries);

            string levelClarityStr = split[0];
            string typeGem         = split[1];

            LevelClarity clarity = (LevelClarity)Enum
                                   .Parse(typeof(LevelClarity), levelClarityStr);

            IGem    gem    = this.GemFactory.CreateGem(typeGem, clarity);
            IWeapon weapon = this.Repository.GetWeapon(name);

            weapon.AddGem(gem, index);
        }
예제 #4
0
 public Emerald(LevelClarity levelClarity)
     : base(EmeraldStrength, EmeraldVitality, EmeraldVitality, levelClarity)
 {
 }
예제 #5
0
 public Amethyst(LevelClarity levelClarity)
     : base(AmethystStrength, AmethystVitality, AmethystVitality, levelClarity)
 {
 }
예제 #6
0
파일: Ruby.cs 프로젝트: vesy53/SoftUni
 public Ruby(LevelClarity levelClarity)
     : base(RubyStrength, RubyAgility, RubyVitality, levelClarity)
 {
 }