Exemple #1
0
 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!");
     }
 }
Exemple #5
0
 // 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();
        }