Exemplo n.º 1
0
    public void GenerateSelectableLevelFields()
    {
        if (fieldGenerator == null)
        {
            fieldGenerator = GetComponent <FieldGenerator>();
        }

        for (int i = 0; i < levelNodeFields.Length; i++)
        {
            List <FieldGenerator.Node> nodes = fieldGenerator.GenerateField(levelNodeFields[i].FieldSize, levelNodeFields[i].LevelStartDirection, levelNodeFields[i].SpiralCounting, levelNodeFields[i].StartCountingValue, levelNodeFields[i].IsHorizontal);

            foreach (FieldGenerator.Node node in nodes)
            {
                Vector2 gridPosition        = node.Position + levelNodeFields[i].FieldPosition;
                Vector2 nodePositionOffset  = new Vector2(node.Position.x * levelNodeFields[i].ObjectToBuild.transform.localScale.x, node.Position.y * levelNodeFields[i].ObjectToBuild.transform.localScale.y);
                Vector2 fieldPositionOffset = new Vector2(levelNodeFields[i].FieldPosition.x * levelNodeFields[i].ObjectToBuild.transform.localScale.x, levelNodeFields[i].FieldPosition.y * levelNodeFields[i].ObjectToBuild.transform.localScale.y);

                Vector2 positionOffset = nodePositionOffset + fieldPositionOffset;

                Vector2 gridSpacingOffset = new Vector2(positionOffset.x * gridSpacing.x, positionOffset.y * gridSpacing.y);

                Vector2 nodePosition = positionOffset + gridSpacingOffset;

                LevelProgressState status = gameStateModel.Get().CompletedLevels.Contains(node.Counter) ? LevelProgressState.Finished : LevelProgressState.Locked;

                ISelectableLevel levelNode = InstantiateSelectableLevel(levelNodeFields[i].ObjectToBuild, gameObject, nodePosition, node.Counter, status);

                selectableLevels.Add(gridPosition, levelNode);
            }
        }
    }
Exemplo n.º 2
0
    private ISelectableLevel InstantiateSelectableLevel(GameObject objectToBuild, GameObject parent, Vector2 worldPosition, int counter, LevelProgressState status)
    {
        GameObject node = Instantiate(objectToBuild, worldPosition, new Quaternion(0, 0, 0, 0));

        node.transform.parent = parent.transform;

        ISelectableLevel selectableLevel = node.GetComponent <ISelectableLevel>();

        selectableLevel.Instantiate(status, counter);

        return(selectableLevel);
    }
Exemplo n.º 3
0
    protected override void Execute()
    {
        ISelectableLevel selectableLevel = selectableLevelFieldRef.Get().GetSelectableLevelByLevelNumber(levelStatus.LastLevelNumber);

        cameraRef.Get().WorldPosition = selectableLevel.WorldPosition;
    }