Example #1
0
        public override void Execute(List <Weapon> weapons, string[] args)
        {
            string type = args[1];

            string[]       typeArgs = type.Split();
            string         levelOfRearityAsString = typeArgs[0];
            string         typeOfWeapon           = typeArgs[1];
            string         name          = args[2];
            LevelOfRearity levelOfRerity = (LevelOfRearity)Enum.Parse(typeof(LevelOfRearity), levelOfRearityAsString);

            var weaponType = Assembly
                             .GetExecutingAssembly()
                             .GetTypes()
                             .FirstOrDefault(x => x.Name == typeOfWeapon);
            var constructor = weaponType
                              .GetConstructor(BindingFlags.Instance | BindingFlags.Public,
                                              null,
                                              new Type[]
                                              { typeof(string), typeof(Stats), typeof(LevelOfRearity), typeof(List <Gem>) },
                                              null);

            var weapon = constructor.Invoke(new object[] { name, new Stats(), levelOfRerity, new List <Gem>() });

            weapons.Add((Weapon)weapon);
        }
Example #2
0
 public Knife(string name, Stats stats, LevelOfRearity levelOfRearity, List <Gem> gems)
     : base(name, stats, levelOfRearity, gems)
 {
     this.Stats.MinDamage       = 3 * (int)LevelOfRearity;
     this.Stats.MaxDamage       = 4 * (int)LevelOfRearity;
     this.Stats.NumberOfSockets = 2 * (int)LevelOfRearity;
 }
Example #3
0
 protected Weapon(string name, Stats stats, LevelOfRearity levelOfRearity, List <Gem> gems)
 {
     this.Name           = name;
     this.Stats          = stats;
     this.LevelOfRearity = levelOfRearity;
     this.Gems           = gems;
     this.GemPlacement   = new Dictionary <int, Gem>();
 }