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 })); }
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; }
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]; }
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>(); }
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]; }
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); }
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); }
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]; }
public Sword(string name, LevelOfRarity levelOfRarity = LevelOfRarity.Common) : base(name, MIN_DAMAGE, MAX_DAMAGE, NUMBER_OF_SOCKETS, levelOfRarity) { }
public Sword(string name, LevelOfRarity rarity) : base(name, 4, 6, 3, rarity) { }
public Axe(string name, LevelOfRarity levelOfRarity) : base(name, 5, 10, 4, levelOfRarity) { }
public Knife(string name, LevelOfRarity levelOfRarity) : base(name, 3, 4, 2, levelOfRarity) { }
public Knife(string name, LevelOfRarity levelOfRarity) : base(name, MinimumDamage * (int)levelOfRarity, MaximumDamage * (int)levelOfRarity, NumberOfSockets, levelOfRarity) { }
public Sword(string name, LevelOfRarity levelOfRarity) : base(name, levelOfRarity, minDamage, maxDamage, numberOfSockets) { }
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; } } }