Пример #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);
            }
        }
    }
Пример #2
0
    public void ApplyLevelProgressState()
    {
        if (!LevelHelper.CheckIfLevelExistsWithNumber(levelNumber))
        {
            levelProgressState = LevelProgressState.Unset;
        }

        spriteRenderer.color = LevelStatusAppearances.LevelStatusColors[(int)levelProgressState];
    }
Пример #3
0
    public void IncreaseLevelProgressStateTo(LevelProgressState levelProgressState)
    {
        bool nextLevelProgressStateIsHigher = this.levelProgressState < levelProgressState;

        if (nextLevelProgressStateIsHigher)
        {
            this.levelProgressState = levelProgressState;
        }
    }
Пример #4
0
 public void Instantiate(LevelProgressState levelProgressState, int levelNumber)
 {
     this.levelNumber        = levelNumber;
     this.levelProgressState = levelProgressState;
 }
Пример #5
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);
    }