public IEnumerator haul_task()
        {
            Human      human             = CreateHuman();
            Vector2Int itemSpawnPosition = _spawnPosition + new Vector2Int(-10, 0);
            Vector2Int targetPosition    = _spawnPosition - new Vector2Int(-10, 0);
            WoodLog    item = Factory.Create <WoodLog>("wood log", itemSpawnPosition);
            Task       task = new HaulTask(item, targetPosition, human.MotionComponent, human.InventoryComponent);

            yield return(AddTaskAndWaitUntilFinished(task, human.CommandProcessor));

            //test inventory
            if (human.InventoryComponent.HasItem(item) == true)
            {
                Assert.Fail();
            }
            //test item position
            if (item.Position != targetPosition)
            {
                Assert.Fail();
            }

            human.Die();
            item.Destroy();

            Assert.Pass();
        }
Exemple #2
0
        public void spawn_item_on_traversable_tile()
        {
            WoodLog item = Factory.Create <WoodLog>("wood log", _spawnPosition);

            if (check_item_initialization <WoodLog>(item, false) == false)
            {
                Assert.Fail();
            }

            item.Destroy();
            Assert.Pass();
        }
Exemple #3
0
        public void spawn_item_on_tile_with_item()
        {
            WoodLog item1 = Factory.Create <WoodLog>("wood log", _spawnPosition);
            WoodLog item2 = Factory.Create <WoodLog>("wood log", _spawnPosition);

            if (check_item_initialization <WoodLog>(item2, true) == false)
            {
                Assert.Fail();
            }

            item1.Destroy();
            item2.Destroy();
            Assert.Pass();
        }
Exemple #4
0
        public void spawn_item_on_not_traversable_tile()
        {
            Tile t = Utils.TileAt(_spawnPosition);

            t.SetTraversability(false);
            WoodLog item = Factory.Create <WoodLog>("wood log", _spawnPosition);

            if (check_item_initialization <WoodLog>(item, true) == false)
            {
                Assert.Fail();
            }

            item.Destroy();
            t.SetTraversability(true);
            Assert.Pass();
        }
Exemple #5
0
        public IEnumerator test_item_destroy()
        {
            WoodLog item = Factory.Create <WoodLog>("wood log", _spawnPosition);

            _OnDestroyedWasCalled = false;
            item.OnDestroyed     += OnItemDestroy;

            item.Destroy();
            yield return(new WaitForEndOfFrame());


            if (check_item_destroy <WoodLog>(item) == false)
            {
                Assert.Fail();
            }

            Assert.Pass();
        }
        public IEnumerator haul_to_item_holder_task()
        {
            Human      human          = CreateHuman();
            WoodLog    item           = Factory.Create <WoodLog>("wood log", _spawnPosition);
            Vector2Int holderPosition = _spawnPosition + new Vector2Int(0, 10);
            ItemHolder holder         = Factory.Create <ItemHolder>("plank wall", holderPosition);
            Task       task           = new HaulToItemHolderTask(item, holder, human.MotionComponent, human.InventoryComponent);

            yield return(AddTaskAndWaitUntilFinished(task, human.CommandProcessor));

            //check human position
            if ((human.MotionComponent.GridPosition - holder.Position).magnitude > 1)
            {
                Assert.Fail();
            }
            //check item position
            if (item.Position != holder.Position)
            {
                Assert.Fail();
            }
            //check holder inventory
            if (holder.Items.Contains(item) == false)
            {
                Assert.Fail();
            }
            //check human inventory
            if (human.InventoryComponent.HasItem(item))
            {
                Assert.Fail();
            }

            human.Die();
            holder.Destroy();
            item.Destroy();

            Assert.Pass();
        }
Exemple #7
0
 private void SpawnItem(string name)
 {
     WoodLog w = Factory.Create <WoodLog>(name, Utils.CursorToCoordinates());
 }