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); }
protected Gem( int strength, int agility, int vitality, LevelClarity levelClarity) { this.LevelClarity = levelClarity; this.Strength = strength; this.Agility = agility; this.Vitality = vitality; }
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); }
public Emerald(LevelClarity levelClarity) : base(EmeraldStrength, EmeraldVitality, EmeraldVitality, levelClarity) { }
public Amethyst(LevelClarity levelClarity) : base(AmethystStrength, AmethystVitality, AmethystVitality, levelClarity) { }
public Ruby(LevelClarity levelClarity) : base(RubyStrength, RubyAgility, RubyVitality, levelClarity) { }