void Awake()
    {
        // Create the board model
        var boardModelFactory = new BoardModelFactory();
        var boardModel        = boardModelFactory.Model;

        // Create the board view
        var boardViewFactory = new BoardViewFactory();
        var boardView        = boardViewFactory.View;

        // Create the board controller
        var boardControllerFactory = new BoardControllerFactory(boardModel, boardView);
        var boardController        = boardControllerFactory.Controller;

        // Create the block models, views and controllers
        var blockModelFactory      = new BlockModelFactory();
        var blockViewFactory       = new BlockViewFactory();
        var blockControllerFactory = new BlockControllerFactory();

        for (int x = 0; x < BoardModel.Columns; x++)
        {
            for (int y = 0; y < BoardModel.Rows; y++)
            {
                var blockModel = blockModelFactory.CreateBlock();
                blockModel.Position     = new Vector2(x, y);
                boardModel.Blocks[x, y] = blockModel;
                var blockView       = blockViewFactory.CreateView((boardView as BoardView).gameObject);
                var blockController = blockControllerFactory.CreateController(blockModel, blockView);
            }
        }
    }
Exemplo n.º 2
0
        //public List<BlockModel> generateThisRow = new List<BlockModel>();
        #endregion

        #region Private Fields
        #endregion

        #region Getters/Setters/Constructors
        #endregion

        #region My Methods
        public void GenerateBlockZone(BlockZone blockZone, int offset)
        {
            // Adding +1 to the offset so that the next blockzone doesn't overlap with the last row of the last blockzone.
            for (int yPosition = offset + 1; yPosition <= offset + blockZone.LowYPosition; yPosition++)
            {
                for (int xPosition = blockZone.LowXPosition; xPosition <= blockZone.HighXPosition; xPosition++)
                {
                    BlockModel model =
                        BlockModelFactory
                        .Start()
                        .WithBlockType(WeightedRandomizer.From(blockZone.BlockProbability).TakeOne())
                        .WithPosition(xPosition, yPosition)
                        .WithBlockLevelFromBlockType()
                        .WithBlockExperienceFromBlockType()
                        .WithBlockHPFromBlockType()
                        .WithBlockDefenseFromBlockType()
                        .Finish();

                    //Debug.Log($"{model.BlockType.BlockName}");
                    if (model.BlockType.BlockName != "BLANK")
                    {
                        blockModels.Add(model);
                    }
                }
            }
        }