Пример #1
0
        public void AddNewColumn(OreColumn oreColumn)
        {
            audioSourceEffects.PlayOneShot(addColumnSound);

            var columnHolder = InstantiateColumn(oreColumn);

            columnHolder.transform.SetAsFirstSibling();
            columnHolder.transform.localPosition = new Vector3(-1 * _prefabSize.x, 0, 0);

            var transformAccessArray = new TransformAccessArray(_game.GetOreColumns().Count);

            for (int i = 0; i < spawnPoint.transform.childCount; i++)
            {
                transformAccessArray.Add(spawnPoint.transform.GetChild(i));
            }

            new MoveColumnsLeftJob
            {
                PrefabWidth = _prefabSize.x
            }
            .Schedule(transformAccessArray)
            .Complete();

            transformAccessArray.Dispose();
        }
        public void RemoveOre_GetRemovedOre_ReturnsNull()
        {
            var oreColumn = OreColumn.GenerateRandomColumn(1);

            oreColumn.Remove(5);

            Assert.IsNull(oreColumn.Get(5));
        }
        public void RemoveOre_DecreasesCount()
        {
            var oreColumn = OreColumn.GenerateRandomColumn(1);
            var count     = oreColumn.Count;

            oreColumn.Remove(5);

            Assert.AreEqual(count - 1, oreColumn.Count);
        }
        public void ApplyGravity_OneOreRemoved_GetRemovedOreReturnsSome_GetTopOreReturnsNull()
        {
            var oreColumn = OreColumn.GenerateRandomColumn(1);

            oreColumn.Remove(5);
            oreColumn.ApplyGravity();

            Assert.IsNotNull(oreColumn.Get(5));
            Assert.IsNull(oreColumn.Get(OreColumn.ColumnSize - 1));
        }
Пример #5
0
        private GameObject InstantiateColumn(OreColumn oreColumn)
        {
            var columnHolder = new GameObject("OreColumn");

            columnHolder.transform.SetParent(spawnPoint, false);
            for (int j = 0; j < oreColumn.Count; j++)
            {
                var ore         = oreColumn.Get(j);
                var oreInstance =
                    Instantiate(Array.Find(orePrefabMaps, map => map.oreType == ore.type).prefab,
                                columnHolder.transform, false);
                oreInstance.GetComponent <OreController>().Init(ore, _game.OnOreClicked);
                oreInstance.transform.localPosition = new Vector3(0, j * _prefabSize.y, 0);
            }

            return(columnHolder);
        }
        public void ApplyGravity_NoOreRemoved_NothingChanges()
        {
            var oreColumn = OreColumn.GenerateRandomColumn(1);
            var oresList  = new List <Ore>();

            for (int i = 0; i < oreColumn.Count; i++)
            {
                oresList.Add(oreColumn.Get(i));
            }

            oreColumn.ApplyGravity();

            for (int i = 0; i < oreColumn.Count; i++)
            {
                Assert.AreEqual(oresList[i], oreColumn.Get(i));
            }
        }
        public void GenerateRandomColumn_RespectsOreTypes()
        {
            var oreTypes  = 3;
            var oreColumn = OreColumn.GenerateRandomColumn(oreTypes);

            var oreTypesVerified = new List <OreType>();

            for (int i = 0; i < oreColumn.Count; i++)
            {
                var ore = oreColumn.Get(i);
                if (!oreTypesVerified.Contains(ore.type))
                {
                    oreTypesVerified.Add(ore.type);
                }
            }

            Assert.LessOrEqual(oreTypesVerified.Count, oreTypes);
        }
        public void GenerateRandomColumn_HasProperHeight()
        {
            var oreColumn = OreColumn.GenerateRandomColumn(1);

            Assert.AreEqual(oreColumn.Count, OreColumn.ColumnSize);
        }