public void GetMappable_ReturnsNullWhenNoMappableAtPosition()
        {
            var pos   = new Point(1, 1);
            var level = new EmptyLevel("level", pos.X + 10, pos.Y + 10);

            Assert.AreEqual(level.Tilemap.Creatures.GetMappable(pos), null);
        }
        public void GetMappable_ReturnsMappableAtPosition()
        {
            var pos   = new Point(1, 1);
            var level = new EmptyLevel("level", pos.X + 10, pos.Y + 10);
            var plant = new HealingPlant(level, pos);

            Assert.AreEqual(level.Tilemap.Creatures.GetMappable(pos), plant);
        }
        public void RemoveMappable_RemovesMappableFromLayer()
        {
            var pos   = new Point(1, 1);
            var level = new EmptyLevel("level", pos.X + 10, pos.Y + 10);
            var plant = new HealingPlant(level, pos);

            Assert.AreEqual(level.Tilemap.Creatures.GetMappable(pos), plant);

            level.Tilemap.Creatures.RemoveMappable(plant);
            Assert.AreEqual(level.Tilemap.Creatures.GetMappable(pos), null);
        }
 public void EmptyLevel_Initializes()
 {
     try
     {
         var level = new EmptyLevel("test", 0, 0);
     }
     catch
     {
         Assert.Fail();
     }
 }
        public void SetMappable_SetsMappableAtPosition()
        {
            var pos   = new Point(1, 1);
            var level = new EmptyLevel("level", pos.X + 10, pos.Y + 10);
            var item  = new Weapon(null, null, new WeaponType("type", 'W', 1, 1, 1), null);

            Assert.AreEqual(level.Tilemap.Items.GetMappable(pos), null);

            level.Tilemap.Items.SetMappable(item, pos);

            Assert.AreEqual(level.Tilemap.Items.GetMappable(pos), item);
        }
        public void RemoveDeatAtPosition_RemovesOnlyDeadMappables()
        {
            var pos   = new Point(1, 1);
            var level = new EmptyLevel("level", pos.X + 10, pos.Y + 10);
            var plant = new HealingPlant(level, pos);

            level.Tilemap.Creatures.FilterDeatAtPosition(pos);
            Assert.AreEqual(level.Tilemap.Creatures.GetMappable(pos), plant);

            plant.IsDead = true;
            level.Tilemap.Creatures.FilterDeatAtPosition(pos);
            Assert.AreEqual(level.Tilemap.Creatures.GetMappable(pos), null);
        }
        public void SetMappable_ThrowsNoExceptionWhenPositionOutOfBounds()
        {
            var level = new EmptyLevel("level", 10, 10);
            var pos   = new Point(level.Bounds.Right + 1, level.Bounds.Bottom + 1);

            try
            {
                level.Tilemap.Creatures.SetMappable(null, pos);
            }
            catch
            {
                Assert.Fail();
            }
        }