diff --git a/PeopleVille.Extension.Mod1/Class1.cs b/PeopleVille.Extension.Mod1/Class1.cs index 536f3d1..17e4659 100644 --- a/PeopleVille.Extension.Mod1/Class1.cs +++ b/PeopleVille.Extension.Mod1/Class1.cs @@ -5,7 +5,7 @@ namespace PeopleVille.Extension.Mod1; public class Snake : IEquipment { - + public string Name { get; set; } = "Snake"; public void Equip() { throw new NotImplementedException(); @@ -20,4 +20,24 @@ public class Snake : IEquipment { Console.WriteLine($"{person.Name} brugte en slange, lol"); } +} + +public class Trumpet : IEquipment +{ + public string Name { get; set; } = "Trumpet med 90 grader"; + + public void Equip() + { + throw new NotImplementedException(); + } + + public void Unequip() + { + throw new NotImplementedException(); + } + + public void Use(Person person) + { + Console.WriteLine($"{person.Name} brugte en trumpet, musik lyder i {person.CurrentLocation.Name}"); + } } \ No newline at end of file diff --git a/PeopleVille/Equipment/Gun.cs b/PeopleVille/Equipment/Gun.cs index c309600..34a88c3 100644 --- a/PeopleVille/Equipment/Gun.cs +++ b/PeopleVille/Equipment/Gun.cs @@ -19,8 +19,14 @@ namespace PeopleVille.Equipment public void Use(Person target) { - target.Health -= this.Damage; - Console.WriteLine($"{target.Name} er blevet skudt og mistede {Damage} liv"); + try + { + target.Health -= this.Damage; + Console.WriteLine($"{target.Name} er blevet skudt og mistede {Damage} liv"); + } catch + { + Console.WriteLine($"{target.Name} prøvede at skyde, men det virkede ikke, øv bøv"); + } } } } diff --git a/PeopleVille/WorldBuilder/WorldBuilder.cs b/PeopleVille/WorldBuilder/WorldBuilder.cs index 4e23d44..b42f0ae 100644 --- a/PeopleVille/WorldBuilder/WorldBuilder.cs +++ b/PeopleVille/WorldBuilder/WorldBuilder.cs @@ -109,9 +109,17 @@ namespace PeopleVille.WorldBuilder { var instances = new List(); string[] dlls = Directory.GetFiles(pathToAssemblyFolder, "*.dll"); + var baseAssemblyName = typeof(T).Assembly.GetName().Name; foreach (var dll in dlls) { + var assemblyName = AssemblyName.GetAssemblyName(dll).Name; + + if (string.Equals(assemblyName, baseAssemblyName, StringComparison.OrdinalIgnoreCase)) + { + continue; + } + instances.AddRange(LoadTypesFromAssembly(dll)); }