public void EquipDefenceItem(DefenceItem item) { if (item is Helmet) { EquipHelmet((Helmet)item); } }
public void Test_Initializing_Defence_Items() { DefenceItem breastPlate = _factory.CreateDefenceItem("armour", "Mithril Breast Plate", 20); Assert.Equal("Mithril Breast Plate", breastPlate.Name); Assert.Equal(20, breastPlate.ReduceHitPoints); Assert.Equal("Armour", breastPlate.Type); }
public void Start() { World w = new World(_maxX, _maxY); Console.WriteLine("The world's range is: " + w); Console.ReadKey(); Creature c = new Creature("Troll", new PositiveInt(750), 35, 20, GameTrace.GT, new Position(2, 5)); Creature c2 = new Creature("Wolfman", new PositiveInt(49), 24, 20, GameTrace.GT, new Position(3, 4)); AttackItem a = new AttackItem("Doom Sword", 34, 3, true, false, new Position(3, 6), GameTrace.GT); AttackItem a2 = new AttackItem("Almighty Sword", 20, 5, true, true, new Position(2, 7), GameTrace.GT); DefenceItem d = new DefenceItem("Protection Shield", 20, true, false, new Position(5, 8), GameTrace.GT); DefenceItem d2 = new DefenceItem("Almighty Shield", 30, false, false, new Position(5, 8), GameTrace.GT); Console.WriteLine("---- The weapons ----"); Console.WriteLine(a); Console.WriteLine(a2); Console.WriteLine(d); Console.WriteLine(d2); Console.ReadKey(); Console.WriteLine("---------"); Console.WriteLine(c); Console.WriteLine("Vs."); Console.WriteLine(c2); Console.ReadKey(); Console.WriteLine("---- " + c.Name + " loots " + a.Name + " and " + d.Name + " ----"); c.LootAttackItem(a); c.LootDefenseItem(d); Console.WriteLine(c); Console.ReadKey(); Console.WriteLine("---- " + c2.Name + " tries to loot " + d2.Name + " ----"); c2.LootDefenseItem(d2); Console.WriteLine(c2); Console.ReadKey(); Console.WriteLine("---- " + c.Name + " tries to loot " + a2.Name + " ----"); c.LootAttackItem(a2); Console.WriteLine(c); Console.ReadKey(); Console.WriteLine("---- " + c.Name + " attacks " + c2.Name + " ----"); c.Hit(); c2.ReceiveHit(c.Hit()); Console.WriteLine(c); Console.WriteLine(c2); GameTrace.GT.Close(); }
public void AddDefenceItem(DefenceItem item) { if (!DefenceItems.Contains(DefenceItems.Find(x => x.Type == item.Type))) { DefenceItems.Add(item); } else { throw new ItemAlreadyEquipped("You cannot equip another item of the same type!"); } }
// It works the same way as LootAttackItem, but it increases the Defence Power instead. public void LootDefenseItem(DefenceItem dI) { if (dI.Lootable) { _defensePower = _defensePower + dI.ReduceHitpoint; _worldObjectList.Add(dI); if (dI.Removable) { _defensePower = _defensePower - dI.ReduceHitpoint; _worldObjectList.Remove(dI); } } }
private static void GetItem(IItem itemDto, User currentUser, UnitOfWork unitOfWork) { var itemArgs = itemDto.ToString().Trim().Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries); var type = itemArgs[0]; var part = itemArgs[1]; if (itemArgs.Length == 4) { switch (part) { case "Sword": var sword = new Sword { ItemType = (ItemType)Enum.Parse(typeof(ItemType), type, true) }; var attackItem = new AttackItem { ItemType = sword.ItemType.ToString(), Price = sword.Price, Attack = sword.Attack, Part = part }; currentUser.Hero.Inventory.Items.Add(attackItem); break; case "Helmet": var helmet = new Helmet { ItemType = (ItemType)Enum.Parse(typeof(ItemType), type, true) }; var defenceItem = new DefenceItem { ItemType = helmet.ItemType.ToString(), Price = helmet.Price, Defence = helmet.Defence, Part = part }; currentUser.Hero.Inventory.Items.Add(defenceItem); break; } } else { switch (part) { case "Belt": var belt = new Belt { ItemType = (ItemType)Enum.Parse(typeof(ItemType), type, true) }; var beltItem = new DefenceAttack { ItemType = belt.ItemType.ToString(), Price = belt.Price, Defence = belt.Defence, Attack = belt.Attack, Part = part }; currentUser.Hero.Inventory.Items.Add(beltItem); break; case "Boots": var boots = new Boots { ItemType = (ItemType)Enum.Parse(typeof(ItemType), type, true) }; var bootsItem = new DefenceAttack { ItemType = boots.ItemType.ToString(), Price = boots.Price, Defence = boots.Defence, Attack = boots.Attack, Part = part }; currentUser.Hero.Inventory.Items.Add(bootsItem); break; case "Chest": var chest = new Chest { ItemType = (ItemType)Enum.Parse(typeof(ItemType), type, true) }; var chestItem = new DefenceAttack { ItemType = chest.ItemType.ToString(), Price = chest.Price, Defence = chest.Defence, Attack = chest.Attack, Part = part }; currentUser.Hero.Inventory.Items.Add(chestItem); break; case "Pants": var pants = new Pants { ItemType = (ItemType)Enum.Parse(typeof(ItemType), type, true) }; var pantsItem = new DefenceAttack { ItemType = pants.ItemType.ToString(), Price = pants.Price, Defence = pants.Defence, Attack = pants.Attack, Part = part }; currentUser.Hero.Inventory.Items.Add(pantsItem); break; } } unitOfWork.Commit(); }